mysql
默认端口为3306
,因此默认一个机器上只能启动一个mysql
实例,如果想要在一台机器上启动多个mysql
实例,则需配置单机多实例。本文承接mysql安装教程。
mysql主从规划
主/从库
IP地址
端口
primary(主库)
10.10.10.1
3306
replica(从库)
10.10.10.2
3306
创建mysql目录 1 2 3 4 5 6 7 8 9 10 11 # 创建mysql多实例数据库目录 $ mkdir -vp /data/mysql_data{1..2} # 创建mysql sock的文件夹 $ mkdir /data/mysqlsock # 修改mysqlsock文件夹的权限 $ chmod 777 /data/mysqlsock/ # 修改文件夹所有者为mysql $ chown mysql.mysql -R /var/lib/mysql/mysql-files /data/mysql_data{1..2} /data/mysqlsock
修改配置文件 1 2 3 4 5 # 备份配置文件 $ mv /etc/my.cnf /etc/my.cnf.bak # 创建新的配置文件,并添加如下配置 $ cat > /etc/my.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [mysqld_multi] mysqld=/usr/sbin/mysqld mysqladmin=/usr/bin/mysqladmin log=/var/log/mysql/mysql_multi.log [mysqld1] datadir=/data/mysql_data1 socket=/data/mysqlsock/mysql.sock1 port=3306 user=mysql performance_schema=off bind_address=0.0.0.0 skip-name-resolve=0 [mysqld2] datadir=/data/mysql_data2 socket=/data/mysqlsock/mysql.sock2 port=3307 user=mysql performance_schema=off bind_address=0.0.0.0 skip-name-resolve=0
初始化mysql多实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 # 初始化mysql多实例,搜索root@localhost: xxx,找到初始密码 $ /usr/sbin/mysqld --initialize --user=mysql --datadir=/data/mysql_data1 # 初始化mysq2多实例,搜索root@localhost: xxx,找到初始密码 $ /usr/sbin/mysqld --initialize --user=mysql --datadir=/data/mysql_data2 # 查看已经存在的mysql,并杀死已经存在的mysql教程 $ ps aux|grep mysql $ kill -9 xxx# 查看mysql运行情况 $ mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld1 is not running MySQL server from group: mysqld2 is not running # 启动mysql多实例 $ mysqld_multi start Reporting MySQL servers MySQL server from group: mysqld1 is running MySQL server from group: mysqld2 is running # 查看服务进程,可以看到前面设置的端口号均已启动 ps aux | grep mysql
登录mysql实例 1 2 3 4 5 6 7 8 # 登录mysql实例1,实例2 $ /usr/bin/mysql -S /data/mysqlsock/mysql.sock1 -p'xxx' # 设置实例1的密码,xxx为初始密码 mysql> SET PASSWORD=PASSWORD('xxx' ); # 退出mysql mysql> exit ;
mysql实例2
同样进行初始化,并设置初始密码,这样mysql单机多实例则初始化完成了