由于项目的需求,在一台服务器上面需要运行多个mysql实例来完成,接下来www.gui2000.com就为大家详细的介绍一下mysql多端口配置启动多个实例,有需要的小伙伴可以参考一下:
1、准备工作:
mysql -V
首先我们要查看一下当前服务器上面的Mysql的版本,因为5.7.6之后mysql初始化数据库使用的是mysqld,5.6及以前的版本是使用的mysql_install_db初始化数据库
2、复制my.cnf配置文件:
cp /etc/my.cnf /etc/my3307.cnf
文件名可以根据自己的喜好命名,我是以将要新开的端口来命名。
3、修改配置文件:
对应参数修改如下:
vim /etc/my3307.cnf [client] port = 3307 socket = /tmp/mysql3307.sock [mysqld] port = 3307 socket = /tmp/mysql3307.sock datadir = /usr/local/mysql/var3307 innodb_data_home_dir = /usr/local/mysql/var3307 innodb_log_group_home_dir = /usr/local/mysql/var3307
4、初始化数据库:
(1)、5.6及以前版本初始化:
cd /usr/local/mysql/scripts/ ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --defaults-file=/etc/my3307.cnf参数解读:--basedir为mysql安装目录,--defaults-file为刚修改的配置文件,mysql_install_db文件有些版本的数据库是在scripts目录下,如果这个目录下没有就看下bin目录文件试是否存在。
(2)、5.7及以后版本初始化:
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql
MySQL5.7使用mysqld命令初始化数据,--initialize-insecure 或 --initialize参数可以定制密码复发度、有效期,[email protected];
初始化参数解读:
--defaults-file:指定配置文件,该参数必须放在第一个,不然会报错 --user :以用户身份运行mysqld服务 --basedir :安装目录的路径 --datadir :数据库根目录的路径 --initialize-insecure :无限制,无临时密码(推荐) --initialize 参数功能: 对于密码复杂度进行定制 密码过期时间,默认180天 [email protected]
5、启动3307数据库:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf 2>&1 >/dev/null &
5.6及以下版本数据库密码默认为空,登录成功,修改为自己的密码即可
6、数据库登录:
(1)、sock方式:
mysql -S /tmp/mysql3307.sock -u root(2)、端口方式:
mysql -h 127.0.0.1 -P 3307 -u root
7、设置多端口mysql服务脚本:
设置多端口mysql服务脚本,方便我们启动关闭数据库,
vim /etc/init.d/mysqlp脚本内容如下:
#!/bin/sh [ -f /etc/init.d/functions ]&&. /etc/init.d/functions||exit #Define Variables Port=$1 Mysql_sock=/tmp/mysql${Port}.sock Path=/usr/local/mysql/bin RETVAL=0 Defaults_file=/etc/my${Port}.cnf #Define Start Function start() { if [ ! -e "$Mysql_sock" ];then /bin/sh $Path/mysqld_safe --defaults-file=$Defaults_file 2>&1 >/dev/null & RETVAL=$? if [ $RETVAL -eq 0 ];then action "Starting $Port MySQL..." /bin/true else action "Starting $Port MySQL..." /bin/false fi else echo "$Port MySQL is Running..." fi return $RETVAL } #Define Stop Function stop() { if [ ! -e "$Mysql_sock" ];then echo "$Port MySQL is Stopped..." else Mysql_datadir=`sed -n -r 's/.*datadir.*=[[:space:]](.*).*/1/p' $Defaults_file` Mysqld_pid_file_path=$Mysql_datadir/`hostname`.pid Mysqld_pid=`cat "$Mysqld_pid_file_path"` kill $Mysqld_pid RETVAL=$? if [ $RETVAL -eq 0 ];then action "Stopping $Port MySQL..." /bin/true else action "Stopping $Port MySQL..." /bin/false fi fi return $RETVAL } case "$2" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; restart) stop while [ -f "$Mysqld_pid_file_path" ] do sleep 1 done start RETVAL=$? ;; *) echo -e "USAGE:$0 {3307|3308|...} {start|stop|restart}" RETVAL=2 ;; esac exit $RETVAL
8、修改脚本权限:
chmod +x /etc/init.d/mysqlp
9、操作命令:
service mysqlp 3307 start service mysqlp 3307 stop service mysqlp 3307 restart
以上就是www.gui2000.com为大家介绍的关于Mysql多端口启动配置的全部内容了,希望对大家有所帮助,了解更多相关文章请关注www.gui2000.com网!