MySQL CentOS7の複数インスタンスの実行

MySQL CentOS7の複数インスタンスの実行

私のPCで複数のMySQLインスタンスを実行する必要があります。私はこれをしました:

yum install mariadb-server mariadb=> mysqlをインストールする

mysql_install_db --datadir=/var/lib/mysql=> 最初のインスタンスの datadir を生成するには、 mysql_install_db を使用します。

mysql_install_db --datadir=/var/lib/mysql2=> 2番目のインスタンスのdatadirを生成するには、mysql_install_dbを使用します。

chown -R mysql:mysql /var/lib/mysqlchown所有者ユーザー:所有者グループ

chown -R mysql:mysql /var/lib/mysql2chown所有者ユーザー:所有者グループ

その後、複数のインスタンスに対してmy.cnfファイルを変更しました。

[client]
#password       = your_password
port            = 3306
socket          = /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MariaDB server
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin

[mysqld0]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
pid-file        = /var/run/mysqld/mysqld.pid
datadir         = /var/lib/mysql
server-id = 1
log-bin = mysql-bin
binlog_format = mixed

[mysqld2]
port            = 3307
socket          = /var/lib/mysql2/mysql.sock
pid-file        = /var/run/mysqld/mysqld2.pid
datadir         = /var/lib/mysql2
server_id       = 2
skip-log-bin

その後、このコマンドを使用して次のようにmysqld_multi reportなりました。

Reporting MySQL servers
MySQL server from group: mysqld0 is not running
MySQL server from group: mysqld2 is not running

その後、mysqld_multi startandを使用してmysqld_multi report同じメッセージを再受信します。

Reporting MySQL servers
MySQL server from group: mysqld0 is not running
MySQL server from group: mysqld2 is not running

Webサーフィンしてこの解決方法を見つけました。複数のインスタンスそしてmysqld_multi。しかし、問題の核心を見つけることができませんでした。インスタンスを実行するにはどうすればよいですか?

ベストアンサー1

両方のインスタンスを起動できない理由を見つけました。/etc/my.cnfファイルの[client]部分にコメントを付けてunit正しい方法で作成する必要があります。/etc/systemd/system私がする方法は次のとおりです。

/etc/my.cnf ファイルの構成:

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin

[mysqld1]
user    = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port=3306
datadir=/var/lib/mysql
server_id=1
log-bin=mysql-bin
binlog_format=mixed

[mysqld2]
user = mysql
pid-file = /var/run/mysqld/mysqld2.pid
socket = /var/run/mysqld/mysqld2.sock
port=3307
datadir=/var/lib/mysql2
server_id=2
skip-log-bin

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

/etc/systemd/system/mysqld_multi_service.service 構成:

[Unit]
Description= mysqld_multi_service

[Service]
Type=simple
ExecStart=/usr/bin/mysqld_multi start
ExecStop=/usr/bin/mysqld_multi stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

そして。systemctl enable mysqld_multi_service.servicesystemctl start mysqld_multi_service.serviceみんなこの手順を実行した後、次のコマンドを使用して最初のインスタンスに接続できます。

mysql -u root -S /var/run/mysqld/mysqld.sock

または2番目のインスタンスとして:

mysql -u root -S /var/run/mysqld/mysqld2.sock

おすすめ記事