记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

 

MySQL多实例配置与启动脚本


一、单机环境下的初始化配置

1.1 初始化数据:

/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/opt/mysql/data --basedir=/opt/mysql

1.2  配置文件

vim /etc/my.cnf


[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/mydata
socket=/tmp/mysql.sock
log_error=/var/log/mysql.log
user=mysql
port=6606
[mysql]
socket=/tmp/mysql.sock


作用:

  • 1.影响服务端的启动

标签: [mysqld]   [mysqld_safe]  [server] ...

[mysqld]
basedir=/opt/mysql          # 数据库文件路径    
datadir=/opt/mysql/data         # 数据库数据文件路径 
user=mysql         # 数据库连接用户
socket=/tmp/mysql.sock         # 数据库连接文件路径 
port=3306 
server_id=6
  • 2.影响客户端连接

标签: [client]   [mysql]  [mysqldump] ....

[mysql] 
socket=/tmp/mysql.sock

二、多实例下的初始化位置

2-0 查看多配置文件的使用顺序

2-1 创建相关目录

mkdir -p /data/330{7..9}/data 

2-2 创建配置文件

cat>> /data/3307/my.cnf<<EOF
[mysqld]
basedir=/opt/mysql              
datadir=/data/3307/data
user=mysql
socket=/data/3307/mysql.sock
port=3307 
server_id=3307
EOF

# 复制文件到其他实例目录下
cp /data/3307/my.cnf /data/3308 
cp /data/3307/my.cnf /data/3309 

# 修改文件内的对应内容
sed -i 's#3307#3308#g' /data/3308/my.cnf 
sed -i 's#3307#3309#g' /data/3309/my.cnf 

2-3 初始化数据

mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/opt/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/opt/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/opt/mysql

2-4 启动多实例

# 修改数据目录的使用权限
chown -R mysql.mysql /data/*

# 测试环境下的启动
mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3309/my.cnf &

2-5 实例的状态查看

netstat -lnp|grep 330

# 通过测试后启动正式的数据库软件
mysql -S /data/3307/mysql.sock
mysql -S /data/3308/mysql.sock
mysql -S /data/3309/mysql.sock

三、配置systemd管理多实例  - 优化多实例的启动与关闭

# 修改指定数据库服务端的服务配置文件
cat >> /etc/systemd/system/mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

# 拷贝给其他势力
cp  /etc/systemd/system/mysqld3307.service   /etc/systemd/system/mysqld3308.service 
cp  /etc/systemd/system/mysqld3307.service   /etc/systemd/system/mysqld3309.service 

# 修改拷贝文件内内容
sed -i 's#3307#3308#g'   /etc/systemd/system/mysqld3308.service
sed -i 's#3307#3309#g'   /etc/systemd/system/mysqld3309.service

# 设置开机自启
 systemctl enable  mysqld3307
 systemctl enable  mysqld3308
 systemctl enable  mysqld3309



转载请标明出处【MySQL多实例配置与启动脚本】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论