mysqlマルチインスタンスインストール

4266 ワード

多くの人がマルチインスタンスインストールmysqlに遭遇したことがあると思います.多くの人はマルチインスタンスインストールのチュートリアルを見つけさえすれば簡単に済むと信じていますが、順調なインストールプロセスほど不安になります.なぜですか.チュートリアルに従って一歩一歩進んでいるとき、すべての言葉の意味の目的を知っていますか.エラーが発生した後、私たちはどうすればいいですか?今、私のインストールプロセス、さまざまな葛藤、さまざまなエラーを示します.
まず、私のパソコンはubuntuシステムで、apt-getがmysqlを自動的にインストールしたことがあります.これもエラーが最も多い原因の一つです.
次は私のインストールプロセスです.エラーがあふれています.
6.mkdir mysql
7.groupadd mysql
8.useradd -r -g mysql mysql
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf
9.cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all 
-DENABLED_LOCAL_INFILE=1
make
make install
これは私たちのmysqlソースコードのインストールが完了したことを示しています.今はユーザーを初期化します.つまり、マルチインスタンスの中で最も重要な部分です.その後の各ステップはコマンド実行後の結果に注意してください.
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data
11.cp support-files/my-medium.cnf /etc/my.cnf
12.cd /usr/local/mysql
scripts/mysql_install_db 
--defaults-file=/usr/local/mysql/data_3308/my.cnf 
--datadir=/usr/local/mysql/data_3308/
上のmysql_install_dbというコマンドは、新しいユーザーを初期化するために使用されます.ここでは、コマンドの実行後の結果に注意してください.最初のとき、私の実行結果は次のようになりました.
root@zhou:/usr/local/mysql# scripts/mysql_install_db --defaults-file=/usr/local/mysql/data_3307/my.cnf --datadir=/usr/local/mysql/data_3307/
Installing MySQL system tables...
130107 10:25:47 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
130107 10:25:47 [ERROR] Aborting
130107 10:25:47 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
ここはすでに間違いが現れたことを見ることができて、原因は何で、みんなは理解することができるべきで、自分はあまりにもいい加減です.cmakeを再実行しました
そして上の命令をやり直しました.初期化に成功したことを示す結果が出るまで、次の操作をおめでとうございます.
root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/
Installing MySQL system tables...
OK
Filling help tables...
OK
このとき、彼は私たちのdataディレクトリにmysqlライブラリやtestライブラリなどの基本情報を生成します.
ところで、権限の割り当ては、うっかりmysqlでは関連ファイルを読み取る権利がありません.
mysqld_safe --defaults-file=/usr/local/mysql/data_3307/my.cnf &
130107 13:35:36 [Note] Server socket created on IP: '0.0.0.0'.
130107 13:35:36 [ERROR] /usr/local/mysql/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 mysqld_safe mysqld from pid file /usr/local/mysql/data3307/mysql.pid ended
ここでのエラーも明らかな原因はhostを読み込んでいないことです.frmの権限は、救済の方法は2つあります.1つは、ディレクトリの下に直接mysqlにこのような権限を添付することです.2つ目は、その原因を追及することです.なぜそうなるのでしょうか.なぜなら、初期化時に--user=mysqlというパラメータを追加しなかったため、生成されたファイルの全市root権限が発生しました.これでやりやすくなります.次にやるときは、このような命令が必要です.
root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/ --user=mysql
okです.この場合、コマンドで開通したサービスの数を確認し、ログインして基本的な操作、権限、キーテーブル、replicationなどを行うことができます.
ここで3つのmysqlサーバーを起動した後、3306の上のサービスにログインするしかないことに気づいたが、他はログインできなかった.3307 3306を殺した後、mysqlにログインするのは確かに間違っていた.
root@zhou:/usr/local/mysql/tmp# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

ここでのエラーの原因は、そのデータベース・サーバがデフォルトの起動計画であることを指定していない場合であるため、mysql 3306を待っているサーバであることがわかります.
root@zhou:/etc/init.d# mysql -h127.0.0.1 -P3307