私の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/mysql
chown所有者ユーザー:所有者グループ
chown -R mysql:mysql /var/lib/mysql2
chown所有者ユーザー:所有者グループ
その後、複数のインスタンスに対して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 start
andを使用して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.service
systemctl start mysqld_multi_service.service
みんなこの手順を実行した後、次のコマンドを使用して最初のインスタンスに接続できます。
mysql -u root -S /var/run/mysqld/mysqld.sock
または2番目のインスタンスとして:
mysql -u root -S /var/run/mysqld/mysqld2.sock