ubuntu 下 MySQL 多实例配置
来源:互联网 发布:淘宝教育官网 编辑:程序博客网 时间:2024/06/06 06:57
ubuntu 下 MySQL 多实例配置
标签:ubuntu MySQL 多实例
项目需求测试MySQL的并发性能,故而需要启动多个实例,即在一台机器上启动多个MySQL服务。只是一个简单需求,也折腾了好几天,本文做一个记录,也希望能帮助更多有此需求的人,节约时间和精力。
本文主要从以下几个方面展开:
- 方法简介
- 实验环境
- MySQL安装
- MySQL启动多实例
- MySQL初始化密码并登陆
- MySQL停止某端口服务
MySQL官方说明文档地址(https://dev.mysql.com/doc/refman/5.7/en/multiple-servers.html)
方法简介
MySQL启动多个实例实际上需要做的是设置(启动/监听)多个不同的端口、不同的socket文件、pid文件及数据目录,为了排错方便,还需要加入log功能,即不同的log文件。
具体实现主要有以下两种方式:
(1) 使用mysqld_multi命令
只需一个配置文件,不同的配置由[mysqldN],其中N为标识号,来识别。具体实现可参见官网,本文不做详述。
(2) 使用mysqld_safe命令
需要多个不同的配置文件,差别在于章首所述,是本文要具体介绍的方法。
实验环境
- ubuntu16.04
- Mysql5.7.17
MySQL安装
原本在ubuntu中安装非常方便,使用 apt-get install mysql-server
即可。但是在实际操作中还是遇到一些小麻烦,所以也稍作说明。
先介绍一下使用 apt-get
命令安装后的文件位置:
主要配置文件:/etc/mysql/my.cnf,这是一个global文件,我们经常需要修改的在/etc/mysql/mysql.conf.d/mysqld.cnf
默认数据文件目录:/var/lib/mysql,这个可以在配置文件中修改
安装位置:/usr/share/mysql
我在使用过程中将ubuntu从14.04升级到16.04,而后再安装Mysql就失败了,报错大致为:[ERROR] key_buffer=16M unrecognize
,google了一堆都说修改配置文件/etc/mysql/my.cnf,将key_buffer改为key_buffer_size,这是mysql5.7版本升级后的修改,然而该配置文件中就是key_buffer_size,让我不能理解,笨拙中又花费了好几个小时,我以为是卸载时没有清理干净,就疯狂卸载,却没有思考即便真的没有卸载干净,他到底读取的哪个配置文件呢?以后还是要冷静下来多思考才好啊。
这里先插播一下怎么干净的卸载吧!
rm /var/lib/mysql/ -r rm /etc/mysql -r rm /usr/share/mysql -r apt-get autoremove mysql-server apt-get remove mysql-common dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P //清理残留数据
回到主题,mysql读取默认配置文件的顺序如下: /etc/my.cnf
/etc/mysql/my.cnf
~/.my.cnf
So~让我们来看一下这个隐藏文件 ~/.my.cnf
吧,果不其然,里面的属性名称是错的,另外还需要注释掉myisam-recover = BACKUP
,不开心搞了这么久。
MySQL启动多个实例
主要分为一下几步:
1. 创建数据目录并修改权限
mkdir new_datadirchown -R mysql:mysql new_datadir
2. 修改配置文件 – 以配置3307端口为例,默认为3306
cp ~/.my.cnf /etc/mysql/my1.cnfvim /etc/mysql/my1.cnf
修改主要如下:
注:socket、pid、log文件都是在启动以后才生成的,并且socket和pid在启动时生成,stop以后会自动删除。
port = 3307socket = new_datadir/mysqld.sockpid-file = new_datadir/mysqld.piddatadir = new_datadirlog_error = new_datadir/error.log
3. 在apparmor中添加读写权限
vim /etc/apparmor.d/usr.sbin.mysqldservice apparmor reload
添加datadir的权限(原datadir为/var/lib/mysql):
new_datadir/ r,new_datadir/** rwk,
4. 初始化数据库
mysqld --initialize --datadir=new_datadir --user=mysql
会看到new_datadir下创建了很多mysql的信息文件,具体可参见/var/lib/mysql下,这一步是必须的!
5. 启动
注:shell一直卡在那就说明启动了,可以ctrl Z
进入后台运行。
mysqld_safe --defaults-file=/etc/mysql/my1.cnf
查看端口号,可以看到已被监听
netstat -nlt | grep 3307
到此启动完毕,其实操作很简单啊,不知道为啥耽误了这么久,我猜是配置哪些路径没有正确?反正经验保险起见,要设在数据目录下。
MySQL初始化密码并登陆
1. 终止mysql服务
ps -ef | grep mysqlkill pid
2. 安全模式启动
mysqld_safe --defaults-file = /etc/mysql/my1.cnf --skip-grant-tables
3. 无密码root账号登陆
mysql -uroot -p //不输密码,直接回车mysql> use mysql;
4. 手动update修改密码
mysql> update user set authentication_string=password("123456") where user='root' and host='localhost';mysql> flush privileges;mysql> quit
5. 登陆
mysql -uroot -p -S /mnt/ramdisk/mysql1/mysqld.sock -P 3306
恩,登陆完成了。
MySQL停止某端口服务
- ubuntu 下 MySQL 多实例配置
- ubuntu mysql多实例配置
- Ubuntu下mysql配置
- ubuntu下配置mysql
- Ubuntu下mysql配置
- Ubuntu下MySql配置
- Ubuntu下Vsftpd配置实例
- ubuntu下安装配置MYSQL
- ubuntu下安装配置MYSQL
- Ubuntu下安装配置MySQL
- ubuntu下配置 sphinx+mysql
- Ubuntu下mysql的配置
- Ubuntu服务器下配置 mysql
- ubuntu 下配置MySQL服务
- Ubuntu下python 配置mysql
- Ubuntu环境下配置mysql
- Ubuntu下配置tomcat、mysql
- ubuntu下MySql部分配置
- 资产应该也就是我们家的十几倍吧
- CCF201509-4 高速公路(100分)
- Struts框架(一)——简介
- 1020. Tree Traversals (25) PAT甲级
- Mac系统安装Aircrack-ng破解附近wifi密码(1)
- ubuntu 下 MySQL 多实例配置
- 1018. Public Bike Management (30)
- springmvc 工作原理
- 机器学习算法 原理、实现与实践 —— 感知机与梯度下降
- 神奇的的调色板
- POJ - 2240 Arbitrage解题报告
- JavaSE 学习参考:switch语句
- UVa 1616 Caravan Robbers (二分)
- 感知机介绍及实现