Linux (64) centos (6.7) 環境での Mysql のインストールとマスター/スレーブ レプリケーションの構成

 主に、mysql のインストール、mysql マスターとスレーブの設定、マスター/スレーブ レプリケーションのテストの 3 つの部分で構成されます 1.
Linux (64) centos (6.7) 環境への mysql のインストール
1. mysql-5.7.19-をダウンロード公式 Web サイトからの linux-glibc2 .12-x86_64.tar.gz
公式 Web サイト: https://dev.mysql.com/downloads/mysql/


2. mysql が Linux にインストールされているかどうかを確認し、クリーンにアンインストールします


#rpm -qa |grep -i mysql
mysql-5.7 .18-linux-glibc2.5-x86_64 は、
ライブラリ ファイルがインストールされていることを示します。最初にアンインストールしてください。アンインストール中に --nodeps オプションが使用され、依存関係が無視されることに注意してください:
#rpm -e mysql-5.7.13-linux-glibc2 .5-x86_64 --nodeps


3. mysql ユーザー グループ/ユーザー、データ ディレクトリ、およびユーザー ディレクトリを作成します
まず、作成したユーザーとユーザー グループが存在しないことを確認します。削除する場合は、ユーザーを削除してからユーザーグループ名を削除してください。


  # userdel mysql // ユーザーを削除 
  # groupdel mysql // ユーザーグループ名を削除
  # mkdir /home/mysql //ホームフォルダーの下に mysql フォルダーを作成します
  # mkdir /home/mysql/data // mysql フォルダーの下にフォルダー data を作成します   
  # groupadd mysql //mysql という名前のユーザーグループを作成します        
  # useradd -g mysql -d /home/mysql mysql // ユーザー グループの下にユーザーを作成します。
4. インストール パッケージを解凍し、解凍したパッケージの内容を mysql インストール ディレクトリ /home/mysql にコピーします。


# tar -xzvf mysql-5.7.19 -linux -glibc2.12-x86_64.tar.gz # ファイルを解凍します
# cd mysql-5.7.19-linux-glibc2.12-x86_64 # Enter
# mv * /home/mysql # 前に作成した mysql フォルダーに移動します。
5. mysql データベースを初期化します
# cd /home/mysql # インストールディレクトリに移動します
# ./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize
# ./mysqld --user=mysql --basedir=/home/mysql - -datadir=/home/mysql/data --initialize
[警告] 暗黙的な DEFAULT 値を含む TIMESTAMP は非推奨です。 --explicit_defaults_for_timestamp サーバー オプションを使用してください (詳細についてはドキュメントを参照してください)。 
[エラー] --initialize が指定されましたが、データ ディレクトリが2017-09-1201:46:53.155879Z 0 
[エラー]
mysql のデータ ディレクトリをクリアしていないため、中止中に上記のエラーが発生しました。次のようにクリア コマンドを実行してください:  
# cd /home/mysql /data # インストールディレクトリの下にデータディレクトリを入力します
# rm -fr * # データをクリアします
# cd /home/mysql       
# ./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize 
[警告] 暗黙的な DEFAULT 値を含む TIMESTAMP は非推奨です。--explicit_defaults_for_timestamp サーバー オプションを使用してください (詳細についてはドキュメントを参照してください)。2016-04-08T01:47:59.945537Z 0 
[警告] InnoDB: 新しいログ ファイルが作成されました、LSN=45790 2017-09-12T01:48:00.333528Z 0 [警告] InnoDB: 外部キー制約システム テーブルを作成しています。2016-04-08T01:48:00.434908Z 0 
[警告] 既存の UUID が見つからないため、このサーバーが初めて起動されたものと想定されます。新しい UUID を生成しています: ece26421-fd2b-11e5-a1e3-00163e001e5c。2016-04-08T01:48:00.440125Z 0 
[警告] Gtid テーブルを使用する準備ができていません。テーブル 'mysql.gtid_executed' を開くことができません。 2017-09-12T01:48:00.440904Z 1 [注意] 
root@localhost に対して一時パスワードが生成されます: %&*T ,#x98sW
上記の %&*T,#x98sW のように、パスワードを変更するときに必要となるランダムなパスワードを覚えておいてください。


6. mysql サービスが開始できるかどうかを確認します。mysql
の tar.gz インストール パッケージのデフォルトのインストール ディレクトリは /usr/local/mysql です。/support-files/mysql の basedir および datadir ディレクトリ パスを変更する必要があります。 .server ファイルを mysql 環境に追加します。basedir および datadir パスは次のとおりです:


# vim support-files/mysql.server 
------------------------ -- 
... 
basedir=/home /mysql 
datadir=/home/mysql/data 
... 
------------------------
# . /support-files/mysql.server start
start MySQL を起動しています.. OK! 


7. ソフト リンクを作成します


# ln -s /home/mysql/bin/mysql /usr/bin/mysql
8. 設定ファイルを作成します
# vim /etc/my.cnf


[mysqld]


basedir = /home/mysql
datadir = /home/mysql/


datacharacter_set_server = utf8
init_connect='SET NAMES utf8'




[client]
default-character-set=utf8


9. ブート時に自動的に開始するように mysql サービスを設定します
# cp /home/mysql/support-files/mysql.server /etc/init.d /mysqld // 起動ファイルを /etc/init.d/ にコピーし、コマンドを mysqld として再入力します
# chmod 755 /etc/init.d/mysqld // 実行権限を増やします
# chkconfig --list mysqld // ことを確認します自己起動項目リストに mysqld がありません
# chkconfig --add mysqld // ない場合は、mysqld を追加します:
# chkconfig mysqld on // このコマンドを使用してスタートアップを設定します。


10. mysql サービスの開始/再起動/停止
# service mysqld start # サービスを開始します
# service mysqld restart # サービスを再起動します
# service mysqld stop # サービスを停止します
11 . mysql ユーザーの root パスワードを初期化する
[root@testfornss ~]# mysql -u root -p
パスワードを入力してください: 先ほどのランダムなパスワード
mysql> SET PASSWORD = PASSWORD('123456'); # PASSWORD() の 123456 は新しいパスワードですset
Query OK、影響を受ける行 0 件、警告 1 件 (0.00 秒)
一致した行 : 2 変更された行 : 0 警告 : 1
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
クエリ OK、影響を受ける行 0 件、警告 1 件 (0.00 秒)
一致した行 : 2 変更された行 : 0 警告 : 1
mysql> フラッシュ権限。
クエリ OK、影響を受ける行 0 件、警告 1 件 (0.00 秒)
一致した行数: 2 変更された行: 0 警告: 1
12. 変更修正一部编码
mysql> use mysql
テーブル名と列名の補完のためにテーブル情報を読み取ります。
この機能をオフにすると、 -A を使用すると起動が速くなります。


Database が変更されました
mysql> \s
--------------
/usr/soft/mysql/bin/mysql Ver 14.14 Distrib 5.7.13、linux-glibc2.5 用 ( x86_64) EditLine ラッパーを使用


接続 ID: 2
現在のデータベース: mysql
現在のユーザー: root@localhost
SSL: 使用されていません
現在のページャ: stdout
outfile の使用: ''
区切り文字の使用: ;
サーバー バージョン: 5.7.13 MySQL Community Server (GPL)
プロトコル バージョン: 10
接続: UNIX ソケット経由の Localhost
サーバー文字セット: utf8
Db 文字セット: latin1 --- 必要なエンコーディングに変更する必要があります
クライアント文字セット: utf8
接続文字セット: utf8
UNIX ソケット: /tmp/mysql.sock
稼働時間: 27 秒


スレッド: 1 質問: 43 遅いクエリ: 0 オープン: 136 フラッシュ テーブル: 1 オープン テーブル: 129 1 秒あたりの平均クエリ数: 1.592 --------------
mysql


> 'character%' のような変数を表示;  
+-------------------------------------+---------------------- -----------+
| 変数名 | 値 |
+-------------------------------------+---------------------- -----------+
| キャラクターセットクライアント | utf8 |
| 文字セット接続 | utf8 |
| キャラクターセットデータベース | ラテン1 |
| 文字セットファイルシステム | バイナリ |
| 文字セットの結果 | utf8 |
| キャラクターセットサーバー | utf8 |
| キャラクターセットシステム | utf8 |
| 文字セットのディレクトリ | /usr/soft/mysql/share/charsets/ |
+-------------------------------------+---------------------- -----------+
セット内の 8 行 (0.00 秒)


mysql> SETcharacter_set_database = utf8; ----設定编码
Query OK、影響を受ける行は 0 件、警告 1 件 (0.00 秒)


mysql> 'character%' のような変数を表示します。 
+-------------------------------------+---------------------- -----------+
| 変数名 | 値 |
+-------------------------------------+---------------------- -----------+
| キャラクターセットクライアント | utf8 |
| 文字セット接続 | utf8 |
| キャラクターセットデータベース | utf8 |
| 文字セットファイルシステム | バイナリ |
| 文字セットの結果 | utf8 |
| キャラクターセットサーバー | utf8 |
| キャラクターセットシステム | utf8 |
| 文字セットのディレクトリ | /usr/soft/mysql/share/charsets/ |
+-------------------------------------+---------------------- -----------+
セット内の 8 行 (0.00 秒)


mysql> \s
--------------
/usr/soft/mysql/bin/mysql Ver 14.14 Distrib 5.7.13、EditLine ラッパーを使用した linux-glibc2.5 (x86_64) 用


接続 ID: 2
現在のデータベース: mysql
現在のユーザー: root@localhost
SSL: 使用されていません
現在のページャー: stdout
outfile の使用: ''
区切り文字の使用: ;
サーバーのバージョン: 5.7.13 MySQL Community Server (GPL)
プロトコルのバージョン: 10
接続: UNIX ソケット経由のローカルホスト
サーバーの文字セット: utf8
DB 文字セット: utf8
クライアントの文字セット: utf8
接続文字セット: utf8
UNIX ソケット: /tmp/mysql.sock
稼働時間: 3 分 28 秒


スレッド: 1 質問: 52 遅いクエリ: 0 オープン: 137 フラッシュ テーブル: 1 オープン テーブル: 130 1 秒あたりの平均クエリ数: 0.250
--- -----------


mysql> 
  


13. mysql リモート認証


[root@testfornss ~]# mysql -u root -p
Enterpassword:
mysql> *.* に対するすべての権限を 'root'@'% に付与します' '123456' with GRANT OPTION;
クエリ OK、影響を受ける行は 0 件、警告 1 件 (0.01 秒)


リモート接続を設定していない場合、mysql データベース接続ツールを使用して接続することはできません。


14. データベース接続ツールを使用して、インストールが成功したかどうかをテストします
。まず、リモートで接続する Linux システムの IP アドレスを知る必要があります。接続する前に、ローカル マシンが正常に ping できることを確認してください。
2. MySQL マスター/スレーブ構成
上記の手順に従って、マスターとスレーブとして使用するマシンに mysql5.7.19 をインストールします
1. 環境準備
Linux ホスト 2 台、OS は CentOS6.7、同じバージョンの MySQL (MySQL5.7.19) がインストールされていること。
マスターサーバーとスレーブサーバーの両方のファイアウォールで chkconfig iptables をオフにします。
関連情報は次のとおりです。
[マスター サーバー]
IP: 192.168.6.207
[スレーブ サーバー]
IP: 192.168.6.208
2. まず、バイナリ ログ機能をサポートするように設定 /etc/my.cnf を変更します。
[マスター サーバー]
以下を追加します。設定ファイルに追加します。 3 行のコード:
vim /etc/my.cnf
ソケット=/tmp/mysql.sock
log-bin=mysql-bin  
binlog_format=mixed  
server-id=207 //server-id の 100 は最後の桁です。ホスト 207 の。見分けるのは簡単です。もちろん、他の値も設定できますが、スレーブサーバーと同じにすることはできません。
user=mysql
port=3306
を追加した後、保存して MySQL を再起動します


[スレーブ サーバー]
スレーブ サーバーに上記のコードを追加しますが、サーバー ID は異なります。
vim /etc/my.cnf
ソケット=/tmp/mysql.sock
log-bin=mysql-bin  
binlog_format=  
mixedserver-id=208 
user=mysql
port=3306 
smile-skip-errors=all
設定を保存し、MySQLを再起動します。


3. キーと同様に、マスター サーバー上のスレーブ サーバーにアカウントを割り当てます。このキーを使用する場合のみ、スレーブ サーバーはマスター サーバーにアクセスしてマスター サーバーのログ ファイルを共有できます。
【メインサーバー】
メインサーバーのMySQLデータベースにrootユーザーでログインし、以下のコマンドを実行してアカウントを作成します。
GRANT レプリケーション スレーブ ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'; 
4.mysql>show master status; マスターサーバーの BIN ログ情報を表示します (実行後に File と Position の値を記録します) 5. [スレーブサーバー] サーバーを操作するたびに、サーバーのこれら 2 つの値が変更されるため、スレーブサーバーを設定する前は何もしないでください) 5.
[スレーブサーバー]
で MySQL に root ユーザーを使用してログインします。スレーブ サーバー。 
スレーブを閉じます (以前にマスター/スレーブ レプリケーションが設定されている場合))
スレーブを停止します。  
CHANGE MASTER TO MASTER_HOST="192.168.6.207",MASTER_USER="slave",MASTER_PASSWORD="123456",MASTER_LOG_FILE="mysql-bin.000001",MASTER_LOG_POS=438; 6. スレーブ サーバーを起動します。 スレーブを起動し、スレーブ サーバーを表示します  

status  
、Slave_IO_Running と Slave_SQL_Running の値が両方とも YES の場合、構成が成功したことを意味します
mysql> show smile status;  
3. テスト
1。 まず、マスター サーバーとスレーブ サーバーにどのデータベースがあるかを確認します


[マスター サーバー]
[html] view plain copy
mysql> show Databases;  
+---------+  
| Database |  
+ --------------------+  
| 情報スキーマ |  
| mysql |  
| パフォーマンス スキーマ |  
| sys |  
+-------------- -- ----+  


【スレーブサーバー】
[html] プレーン コピー
mysql> データベースを表示;  
+--------------------------+  
| データベース |  
+---------- ------ -------+  
| information_schema |  
| mysql |  
| Performance_schema |  
| sys |  
+---------+  


2.メイン サーバーに新しいデータベースを作成します データベース testdb
[html] view plain copy
create database testdb;  


[html] view plain copy
mysql> show Databases;  
+----------------- --+  
| データベース |  
+- ------------------+  
| information_schema |  
| testdb |  
| mysql |  
| Performance_schema |  
| sys |  
+---------------------+  
5 行セット (0.00 秒)  


3. データベース testdb がスレーブ サーバーでも使用できるかどうかを確認します。 「はい」の場合、マスター/スレーブ レプリケーションが正常であることを意味します。これで完了です。


[html] プレーン コピー
mysql> データベースを表示;  
+--------------------------+  
| データベース |  
+---------- ------ -------+  
| information_schema |  
| testdb |  
| mysql |  
| Performance_schema |  
| sys |  
+----------- +  

おすすめ

転載: blog.csdn.net/qq_28453175/article/details/77968331