mysql 5.7.31 多实例
mysql 5.7.31 多实例部署 关于网上的对于5.7的进行多实例的部署,参看了很多,有点略显不足,或者和实际的多实例的操作有很大的操作初入。所以,自己摸索琢磨出一种方式实现mysql多实例部署。我使用的使用的是通过mysql57-community-release-el7-8.noarch.rpm部署的MySQL。版本为(5.7.31)errmsg.sys的步骤,mysqld初始化步骤需要
·
mysql 5.7.31 多实例部署
文章目录
一、使用mysql_install_db初始化,进行实例创建
1.创建datadir的文件目录
[root@localhost]# mkdir /data/mysql/3307
[root@localhost]# chown -R mysql:mysql /data
2.使用mysql_install_db初始化和配置文件
复制配置文件,并修改创建实例的相关参数
[root@localhost]# cp /etc/my.cnf /data
[root@localhost]# vim /data/my.cnf
[mysqld]
basedir =/usr/local/mysql
datadir =/data/mysql/3307
port = 3307
socket =/tmp/mysql3307.sock
#lc-messages = en_US
#lc-messages-dir = /usr/share/mysql/
#socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld3307.log
pid-file=/var/run/mysqld/mysqld3307.pid
max_allowed_packet=1048576
#skip-grant-tables
新建Mysql实例初始化。使用mysql_install_db。因为mysqld初始会有很多错误和麻烦
[root@localhost]# mysql_install_db --defaults-file=/data/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/3307 --user=mysql
3.SSL连接初始化
[root@localhost]# mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307
4.修改密码
修改实例密码。免密配置
[root@localhost]# vim /data/my.cnf
skip-grant-tables
启动3307实例启动
[root@localhost]# mysqld --defaults-file=/data/my.cnf --user=mysql &
同时,也启动mysql
[root@localhost 3307]# systemctl start mysqld
查看进程
[root@localhost 3307]# ps -ef|grep mysql
mysql 13875 1 0 12:01 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
mysql 14751 12528 3 12:17 pts/2 00:00:00 mysqld --defaults-file=/data/my.cnf --user=mysql #创建实例的msyql
登录创建的root密码
[root@localhost 3307]# mysql -uroot -P3307 -h127.0.0.1 -p123456
mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
登录再次修改一遍密码
[root@localhost]# mysql -uroot -P3307 -h127.0.0.1 -p123456
mysql> SET PASSWORD = PASSWORD('123456');
mysql> flush privileges;
mysql>show databases; #执行查看效果
#取消免秘钥密码
[root@localhost]# vim /data/my.cnf
#skip-grant-tables
5.尝试登录
杀死创的实例进程。重启创建实例的mysql
[root@localhost 3307]# kill -9 14751
[root@localhost]# mysqld --defaults-file=/data/my.cnf --user=mysql &
[root@localhost 3307]# mysql -uroot -P3307 -h127.0.0.1 -p123456
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
二、使用mysqld初始化,进行实例创建
1.创建datadir的文件目录
[root@localhost]# mkdir /data/mysql/3307
[root@localhost]# chown -R mysql:mysql /data
2.使用mysqld初始化和配置文件
对于初始化过程出现Can’t find messagefile '/usr/share/mysql/english/errmsg.sys,以下操作:
搜索errmsg.sys,确认errmsg.sys
[root@localhost mysql]# find / -iname errmsg.sys
/usr/share/mysql/czech/errmsg.sys
/usr/share/mysql/danish/errmsg.sys
/usr/share/mysql/dutch/errmsg.sys
/usr/share/mysql/english/errmsg.sys
/usr/share/mysql/estonian/errmsg.sys
/usr/share/mysql/french/errmsg.sys
/usr/share/mysql/german/errmsg.sys
通过搜索可见在在/usr/share/mysql的子目录下
复制配置文件,并修改创建实例的相关参数
[root@localhost]# cp /etc/my.cnf /data
[root@localhost]# vim /data/my.cnf
[mysqld]
basedir =/usr/local/mysql
datadir =/data/mysql/3307
port = 3307
socket =/tmp/mysql3307.sock
lc-messages = en_US
lc-messages-dir = /usr/share/mysql/ #配置文件中指定errmsg.sys
#socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld3307.log
pid-file=/var/run/mysqld/mysqld3307.pid
max_allowed_packet=1048576
#skip-grant-tables
创建/var/log/mysqld3307.log文件
[root@localhost]# touch /var/log/mysqld3307.log
[root@localhost]# chmod -R mysql:mysql mysqld3307.log
开始Mysqld实例初始化。
[root@localhost]# mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307 --initialize
3.SSL连接初始化
[root@localhost 3307]# mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307
mysqld尝试启动
[root@localhost 3307]# mysqld --defaults-file=/data/my.cnf --user=mysql &
第4步骤、第5步骤参照以上
三、其他补充
1.实例的远程登录实现
[root@localhost 3307]# mysql -uroot -P3307 -h127.0.0.1 -p123456
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2.编写mysql实例的启停脚本内容
[root@localhost ~]# vim mysql3307
#!/bin/bash
select=$1
start(){
ther=$(ps -ef|grep mysqld|grep -v grep|grep '\/my.cnf'|wc -l)
if [ $ther -eq 1 ]
then
echo mysql3307 is running!!
else
mysqld --defaults-file=/data/my.cnf --user=mysql &
if [ $? == 0 ]
then
echo mysql3307 is ok。
else
echo mysql3307 is failed。
fi
fi
}
stop(){
ther=$(ps -ef|grep mysqld|grep -v grep|grep '\/my.cnf'|wc -l)
if [ $ther == 0 ]
then
echo mysql is not exist
else
ps -ef|grep mysqld|grep -v grep|grep '\/my.cnf'| awk '{print $2}'|xargs kill -9
if [ $? == 0 ]
then
echo mysql3307 is stop ok。
else
echo mysql3307 is stop failed。
fi
fi
}
case $select in
"start")
#mysqld --defaults-file=/data/my.cnf --user=mysql &
start
;;
"stop")
stop
;;
"restart")
stop
start
;;
*)
No option exists
;;
esac
脚本赋予可执行权限,放入到系统环境变量中,例如:
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# cp mysql3307 /usr/bin/
使用命令进行实例的启停和重启
[root@localhost ~]# mysql3307 start
[root@localhost ~]# mysql3307 stop
[root@localhost ~]# mysql3307 restart
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)