mysql版本: mysql5.7
操作系统: Ubuntu20.4
当前登录用户:zhangsan
说明:
使用mysqld_multi实现多实例启动,这里我们分别启动在3307和3308端口(可以先用”lsof -i:3307″来查看端口是否已经被占用),存储位置在当前用户的:/home/zhangsan/mysql/db1、/home/zhangsan/mysql/db2。
当前已有一个mysql安装运行在端口3306,默认数据库保存在:/var/lib/mysql(可查看/etc/mysql/mysql.conf.d/mysqld.cnf文件中的配置)。
1.创建多实例启动的配置文件mysqlmulti.conf
首先在进入当前用户目录下创建 mysqlmulti.conf 的配置文件:
cd ~
touch mysqlmulti.conf
vim mysqlmulti.conf
输入如下配置内容:
[mysqld_multi]
# 实际使用 mysqld_safe脚本启动
mysqld = /usr/bin/mysqld_safe
# 管理实例命令
mysqladmin = /usr/bin/mysqladmin
# 实例1-端口3307
[mysqld3307]
#数据库文件保存位置
datadir = /home/zhangsan/mysql/db1
#访问端口
port = 3307
socket = /home/zhangsan/mysql/mysqld3307.sock
pid-file = /home/zhangsan/mysql/mysqld3307.pid
#错误日志文件保存位置
log-error = /home/zhangsan/mysql/mysql3307.log
user=mysql
# 实例2-端口3308
[mysqld3308]
datadir = /home/zhangsan/mysql/db2
port = 3308
socket = /home/zhangsan/mysql/mysqld3308.sock
pid-file = /home/zhangsan/mysql/mysqld3308.pid
log-error = /home/zhangsan/mysql/mysql3308.log
user=mysql
我们刚创建的配置文件拥有者为我们登录的用户,需要使用chown命令修改文件的拥有者为mysql用户:
sudo chown mysql:mysql mysqlmulti.conf
2.给数据库目录增加权限
修改数据库目录权限:
sudo chown mysql:mysql /home/zhangsan/mysql/db1
sudo chown mysql:mysql /home/zhangsan/mysql/db2
修改:/etc/apparmor.d/usr.sbin.mysqld文件, 在文件末尾增加我们设置的两个保存mysql数据库文件的路径。
注意:该文件最后一行是大括号结尾,要放到括号里面。
/home/zhangsan/mysql/ rw,
/home/zhangsan/mysql/** rwk,
然后使用命令来重启apparmor:
service apparmor restart
初始化数据库目录:
sudo mysqld --initialize-insecure --explicit_defaults_for_timestamp --datadir=/home/zhangsan/mysql/db1
sudo mysqld --initialize-insecure --explicit_defaults_for_timestamp --datadir=/home/zhangsan/mysql/db2
3.创建日志文件并授权
创建空的日志文件:
touch /home/zhangsan/mysql/mysqld3307.log
touch /home/zhangsan/mysql/mysqld3308.log
授权给mysql用户:
cd /home/zhangsan/mysql/
sudo chown mysql:mysql mysqld3307.log mysqld3308.log
4.使用mysqld_multi命令启动多个实例
sudo mysqld_multi --defaults-file=/home/zhangsan/mysqlmulti.conf --no-log start
5.验证mysql安装、启动和停止数据
sudo mysqld_multi --defaults-file=/home/zhangsan/mysqlmulti.conf report
数据库启动后没有密码的,我们用空密码登录数据:
mysql -P3307 -uroot -S /home/zhangsan/mysql/mysqld3307.sock
mysql -P3308 -uroot -S /home/zhangsan/mysql/mysqld3308.sock
数据库 启动、停止、重启、查看状态:
使用:sudo mysqld_multi –defaults-file=/home/zhangsan/mysqlmulti.conf –no-log start | stop| reload | report 3307 | 3308
仅示范启动3307端口数据库命令:
sudo mysqld_multi --defaults-file=/home/zhangsan/mysqlmulti.conf --no-log start 3307
说明:如果最后不加端口就是针对 mysqlmulti.conf 配置文件中所有数据库批量做操作。
Leave a Reply