mysql的死锁等6个实战问题解决_MySQL
mysql的死锁等6个实战问题解决
目录:
锁表后的解锁 mysql连接数不够 mysql的root密码修改 密码正确却登录不进 datetime类型有0问题 查看表占用空间
锁表后的解锁
当对表做dml操作时卡住,很可能是表被锁。
到数据库主机,查看进程命令:
show processlist;
找到有锁的进程id,杀掉:
kill id;
processlist是全部的进程,比较多,有时候,从processlist里能看到哪个锁住,但有时候它和其他进程看上去一样。
这时需要查看数据表:
<code class="language-sql hljs ">SELECT * FROM information_schema.INNODB_TRX; SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;</code>
看trx_mysql_thread_id字段,这个是死锁的进程id,然后到主机那里kill掉即可。
经验提示:最好不要用客户端界面修改表结构,有可能会锁住。最好使用语句。(不过,其实我也经常贪图方便,直接用SQLyog直接修改表结构,方便嘛。偶尔锁住了kill掉即可,毕竟只是开发环境,生产环境必须不能如此)<br /> 增加字段:ALTER TABLE tf_b_depart ADD (PARENT_MAJOR VARCHAR(6));<br /> 修改字段:alter table tf_f_task_target modify VALUE decimal(16,2);<br /> 建表:CREATE TABLE td_s_salary_index (index_id VARCHAR(8));
mysql连接数不够
陆续开发人员的eclipse里突然报错信息:
MySQLNonTransientConnectionException<br /> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: “Too many connections”<br /> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
原因:max_connections mysql 默认值为100,超过了就会报错。重启mysql即可。为了防止后面再出现,需要把max_connections改为1000或更多。
<code class="language-sql hljs "><code class="hljs makefile">[mysql@paas03 ~]$more my.cnf [mysqld_multi] mysqld = /app/mysql/bin/mysqld_safe mysqladmin = /app/mysql/bin/mysqladmin user = mysql password = a@Aug22 log=/app/log/mysqld_multi.log [mysqld01] port = 3010 socket = /tmp/mysql.sock01 pid-file = /app/data_paas/db-app.pid basedir = /app/mysql datadir = /app/data_paas user = mysql symbolic-links=0 character-set-server=utf8 lower_case_table_names=1 innodb_log_file_size=128M innodb_log_buffer_size=4M innodb_buffer_pool_size=1G event_scheduler=1 explicit_defaults_for_timestamp max_connections=1500 join_buffer_size = 128M sort_buffer_size = 10M read_rnd_buffer_size = 2M</code></code>
<code class="hljs makefile">参考:http://www.cnblogs.com/S-E-P/archive/2011/04/29/2045050.html
<code class="hljs makefile">mysql的root密码修改
<code class="language-sql hljs "><code class="hljs makefile"><code class="language-sql hljs ">SELECT * FROM mysql.user WHERE USER='root'; SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root123'); SET PASSWORD FOR 'root'@'paas03' = PASSWORD('root123'); SET PASSWORD FOR 'root'@'%' = PASSWORD('root123');</code></code></code>
<code class="hljs makefile"><code class="language-sql hljs ">注:亲测OK。
<code class="hljs makefile"><code class="language-sql hljs ">密码正确却登录不进
<code class="hljs makefile"><code class="language-sql hljs ">Caused by: java.sql.SQLException: Access denied for user ‘zplat_cen1’@’aifs1’ (using password: YES)
<code class="hljs makefile"><code class="language-sql hljs ">其他机器可以登录,就是安装了这个数据库的本机不能登录。然后发现不需要密码就可以登录了(去掉-p),但是只有test库。<br />
http://www.bitsCN.com/article/19326.htm这里里面说的delete from user where user is NULL;是扯淡的。<br />
真正的原因是dba没创建本主机的用户,mysql和oracle不太一样,同一个用户,需要在三台机器分别创建,包括localhost、本主机名、%(表示通配符)。应该CREATE USER 'zplat_cen1'@'aifs1' IDENTIFIED BY 'XXX';就可以了。
<code class="hljs makefile"><code class="language-sql hljs ">datetime类型有.0问题
<code class="hljs makefile"><code class="language-sql hljs ">mysql datetime类型,后面会有.0<br />
2015-07-21 16:37:47.0<br />
有两种解决方法:<br />
1. 写sql时增加DATE_FORMAT(RECEIVE_TIME, '%Y-%m-%d %H:%i:%s'),这个非常麻烦,每个sql都得加<br />
2. 修改你公司的框架代码,统一处理一下
<code class="language-sql hljs "><code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs ">if (type == Types.TIMESTAMP) { // 增加对时间类型的支持,修复mysql显示.0问题 2015.7.21 Timestamp t = rs.getTimestamp(name); if (t == null) return null; SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = sDateFormat.format(t); return date; }</code></code></code></code>
<code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs ">参考:http://blog.csdn.net/zhanghaotian2011/article/details/7721551
<code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs ">同样的decimal类型也有这个问题,前台显示全部加.00
<code class="language-sql hljs "><code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs "><code class="language-java hljs ">if (type == Types.DECIMAL) { // 增加对decimal类型的支持,修复mysql显示.00问题 2015.7.22 String decimal = rs.getString(name); if (decimal == null) return null; if(decimal.indexOf(".") > 0){ decimal = decimal.replaceAll("0+?$", "");//去掉多余的0 decimal = decimal.replaceAll("[.]$", "");//如最后一位是.则去掉 } return decimal; }</code></code></code></code></code>
<code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs "><code class="language-java hljs ">PS:学好正则表达式是多么的重要!否则去0的这个代码你怎么??
<code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs "><code class="language-java hljs ">查看表占用空间
<code class="language-sql hljs "><code class="hljs makefile"><code class="language-sql hljs "><code class="language-java hljs "><code class="language-java hljs "><code class="language-sql hljs ">SELECT table_name,data_length/1024/1024 MB FROM information_schema.tables WHERE table_schema='zplatdb' ORDER BY data_length DESC;</code></code></code></code></code></code>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP の実践: フィボナッチ数列をすばやく実装するためのコード例 フィボナッチ数列は、数学では非常に興味深い一般的な数列です。次のように定義されています: 最初と 2 番目の数値は 0 と 1、3 番目からは数値で始まり、それぞれの数値前の 2 つの数値の合計です。フィボナッチ数列の最初のいくつかの数値は、0、1、1.2、3、5、8、13、21 などです。 PHP では、再帰と反復を通じてフィボナッチ数列を生成できます。以下ではこの2つを紹介していきます

jQuery.val() が使用できない問題を解決するには、具体的なコード例が必要です フロントエンド開発者にとって、jQuery の使用は一般的な操作の 1 つです。その中でも、.val() メソッドを使用してフォーム要素の値を取得または設定する操作は、非常に一般的な操作です。ただし、特定のケースでは、.val() メソッドを使用できないという問題が発生する可能性があります。この記事では、いくつかの一般的な状況と解決策を紹介し、具体的なコード例を示します。問題の説明 jQuery を使用してフロントエンド ページを開発する場合、時々次のような問題が発生します。

強力なパフォーマンスと多彩な機能で知られる iPhone は、複雑な電子機器によく見られる、時折起こる問題や技術的な困難を免れません。 iPhone の問題が発生するとイライラすることもありますが、通常は警報を発する必要はありません。この包括的なガイドでは、iPhone の使用に関連して最も一般的に遭遇する課題のいくつかをわかりやすく説明することを目的としています。当社の段階的なアプローチは、これらの一般的な問題の解決に役立つように設計されており、機器を最高の動作状態に戻すための実用的な解決策とトラブルシューティングのヒントを提供します。不具合やより複雑な問題に直面している場合でも、この記事はそれらを効果的に解決するのに役立ちます。一般的なトラブルシューティングのヒント 具体的なトラブルシューティング手順を詳しく説明する前に、役立つ情報をいくつか紹介します。

クラスタリング アルゴリズムのクラスタリング効果評価問題には、特定のコード例が必要です クラスタリングは、データをクラスタリングすることによって、類似したサンプルを 1 つのカテゴリにグループ化する教師なし学習手法です。クラスタリングアルゴリズムでは、クラスタリングの効果をどのように評価するかが重要な問題となります。この記事では、一般的に使用されるいくつかのクラスタリング効果評価指標を紹介し、対応するコード例を示します。 1. クラスタリング効果評価指標 シルエット係数 シルエット係数は、サンプルの近さや他のクラスタとの分離度を計算することでクラスタリング効果を評価します。

データ エクスポート機能は、実際の開発、特にバックエンド管理システムやデータ レポートのエクスポートなどのシナリオで非常に一般的な要件です。この記事では、Golang 言語を例として、データ エクスポート機能の実装スキルを共有し、具体的なコード例を示します。 1. 環境の準備 開始する前に、Golang 環境がインストールされており、Golang の基本的な構文と操作に精通していることを確認してください。さらに、データ エクスポート機能を実装するには、github.com/360EntSec などのサードパーティ ライブラリの使用が必要になる場合があります。

Yulong 8 ワインマスター試験にはどのような問題がありますか?対応する答えは何でしょうか?試験に早く合格するにはどうすればよいですか?マスター オブ ワイン試験の活動では、回答しなければならない質問がたくさんあり、その回答を参照して解決することができます。これらの質問にはすべてワインの知識が含まれます。参考が必要な場合は、龍が如く 8 ワインマスター試験問題の解答の詳細な分析を見てみましょう。 Rulong 8 ワインマスター試験の問題の答えを詳しく解説 1.「ワイン」に関する質問。ハワイで大量に栽培されているサトウキビの糖分を原料に醸造され、王室御用達の蒸留所で造られる蒸留酒です。このワインの名前は何ですか? 答え: ラム酒 2.「ワイン」についての質問です。写真は乾燥高麗人参と乾燥ベルモットをブレンドしたドリンクです。オリーブが入っているのが特徴で「コックニー」と呼ばれています。

サウンド カード ドライバーは、サウンド カードを制御および指示するコンピューター内のシステム プログラムです。サウンドの再生に役立ちます。したがって、サウンド カード ドライバーに問題がある場合、サウンドに関して最も直観的な状況は次のとおりです。音が出なくなったり、音が変動したり異常フリーズしたりします。サウンド カード ドライバーに問題がある場合はどうなりますか: 1. サウンド エラー 1. サウンド カード ドライバーはサウンドを提供するため、最も直感的な問題はサウンドの問題です。 2. コンピューターから音が出ない、音が途切れる、遅延する、ノイズが多い、または音量トーンが異常である場合は、サウンド カード ドライバーに関連している可能性があります。 3. したがって、同様の問題が発生した場合は、サウンド カード ドライバーの再インストールまたは更新を試みることができます。 2. デバイスマネージャーの感嘆符 1. サウンドに問題がない場合は、ほとんどの場合、サウンド カード ドライバーが正常であることを意味します。 2. でも私は

Go のデッドロックと飢餓: デッドロックの防止と解決: コルーチンが相互に待機しているため、操作を実行できないことを検出するには、 runtime.SetBlockProfileRate 関数を使用します。デッドロックの防止: デッドロックを防止するには、きめ細かいロック、タイムアウト、およびロックフリーのデータ構造を使用します。飢餓: コルーチンは引き続きリソースを取得できず、飢餓を防ぐためにフェア ロックが使用されます。公平なロックの実践: 公平なロックを作成し、最初にロックを取得するためにコルーチンがロックを取得しようとするのを最長時間待機します。
