mysql 启动另一实例

测试环境经常有多个项目要开发和测试。为了使项目之间的数据隔离,避免不了新启动数据库实例来应对不同的项目。今天记录在5.7.26的版本下,如何实现多个实例。

1.首先新建一个目录。这个目录用于存放另一个实例的数据库文件。

mkdir -p /var/lib/mysql_3308/data #新增路径
chmod 777 /var/lib/mysql_3308/data #设置该路径权限

2.复制my.cnf文件到/var/lib/mysql_3308目录下。以便从此处开始启动。

cp /var/mysql/my.cnf /var/lib/mysql_3308
chmod 644 /var/lib/mysql_3308 #后来要指定权限才能被使用

3.更改复制过去的my.cnf的配置信息。

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[client]
port=3308
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql_3308.sock
[mysql]
default-character-set = utf8mb4

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
port = 3308
datadir=/var/lib/mysql_3308/data
socket=/var/lib/mysql/mysql_3308.sock
character_set_server=utf8mb4
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
log-error=/var/log/mysqld_3308.log
pid-file=/var/run/mysqld/mysqld_3308.pid
explicit_defaults_for_timestamp=true
lower_case_table_names=1
#log-bin=/etc/mysql/mysql-bin #开启二进制日志
max_connections=1000
server-id=3308  #设置server-id
#binlog-do-db = acexeym_comm
#binlog-do-db = acexeym_company
#skip-grant-tables

4.初始化数据库文件。该命令会初始化mysql的数据库。

mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --initialize-insecure --user=mysql

5.然后启动数据库,注意使用chmod 777 给相关目录以权限。

mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --skip-grant-tables --user=mysql #不使用验证检测登陆

6.打开另一个窗口,使用mysql客户端命令连接,更改密码及登陆权限 。

mysql -u root -P 3308  -S /var/lib/mysql/mysql_3308.sock #注意要指定连接的socket,否则默认使用主mysql的socket,导致连接到其它实例上。切记。因为这个细节,导致后面一直配置登陆出问题。

mysql > use mysql;
mysql > show databases; #主要目的是看一下,是否是新建的实例
mysql > UPDATE user SET Host='%',authentication_string=PASSWORD('xxx') WHERE User='root';
mysql > flush privileges; #刷新配置信息
mysql > exit;

 

7.启动后,连接数据库。

netstat -anp|grep 3308 #查看实例启动的id
kill -9 id #终止实例
mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --user=mysql #重新启动数据库,远程连接测试

8.配置为supervisor守护启动。

[program:mysql_3308]
command=/usr/sbin/mysqld --defaults-file=/var/lib/mysql_3308/my.cnf --user=mysql
;directory=  ; 执行前要不要先cd到目录去,一般不用
priority=1                    ;数字越高,优先级越高
numprocs=1                    ; 启动几个进程
autostart=true                ; 随着supervisord的启动而启动
autorestart=true              ; 自动重启。。当然要选上了
startretries=10               ; 启动失败时的最多重试次数
exitcodes=0                   ; 正常退出代码
stopsignal=KILL               ; 用来杀死进程的信号
stopwaitsecs=10               ; 发送SIGKILL前的等待时间
redirect_stderr=true          ; 重定向stderr到stdout

stdout_logfile_maxbytes = 1024MB
stdout_logfile_backups  = 10
stdout_logfile          = /var/run/log/mysql_3308.log
autostart=true
autorestart=true
startsecs=3

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值