linux中装多个mysql服务
文章需要重新写:https://learnku.com/articles/43558
在linux 中装多个mysql服务
在linux中装多个mysql服务,采用端口号不同来区分。
在linux下创建目录 /path/myenv
使用源码安装,源码下载:https://downloads.mysql.com/archives/community/ 选择合适的版本下载到linux 目录 /tmp 下。
然后 tar -xzvf mysql5.xx.tar.gz -C /path/myenv ,解压到新创建的目录
进入到/path/myenv目录,对mysql5.xxx 重命名为mysql。 mv mysql5.xx mysql
回到/path/myenv 目录,创建 data目录,进入data目录,创建四个文件,mysql.sock、mysql.pid、error.log、my.cnf
前三个文件不要动,重要修改my.cnf
1
2
3
4
5
6
7
8
9
10
11
12[mysqld]
pid-file=/path/myenv/data/mysql.pid
socket=/path/myenv/mysql.sock
port=13306
basedir=/path/myenv/mysql
datadir=/path/myenv/mysql/data
tmpdir=/tmp
server-id = 101
[mysqld_safe]
log-error=/path/myenv/data/error.log解释上面这个my.cnf 文档含义 * 必须保证 pid-file 的值和linux上其他mysql服务不一样。pid-file 里面存的是mysql服务的pid号。mysql 停止服务或者重启服务就靠它了。
- 必须保证 socket 的值和linux 上其他mysql服务不一样。这个值在我理解划定了mysql客户端要和那个mysql服务连接。
- 必须保证port 的值不一样,不同的mysql服务端口号必须不一样。建议填10000以上的,填之前 lsof -i 端口 看一下是否端口被使用。
- 必须保证basedir 的值不一样,这个值代表的mysql服务的安装目录
- 必须保证datadir 的值不一样,这个值代表的mysql服务的数据文件目录
- tmpdir 可以相同,mysql服务临时目录,可能会存放一些mysql的临时表之类的。
- 建议使用mysqld_safe 来启动mysql服务。所以配置 [mysqld_safe]
- log-error的值也应该不一样,存放的是mysql服务的日志信息
- 其余的选项不用管。
配置完my.cnf 之后,可以去启动mysql服务了。在/path/myenv/mysql目录下执行:
./bin/mysqld_safe –defaults-file=/path/myenv/data/my.cnf –user=root –skip-grant-tables & * 上面的命令,mysqld_safe 启动比较安全。了解更多看官方说明。–defaults-file 这个参数必须放在第一个,命令要求,意思是只去关注这个文件中的配置。注意是只。–skip-grant-tables 这个参数是登录mysql服务跳过检查。别忘了 & 后台运行。
- 之后 ps -ef | grep mysql 去查看是否启动成功。
- 此时验证mysql服务。这样登录 mysql -uroot -S /path/myenv/data/mysql.sock 便可登录,不能忘了 -S 参数选项,否则可能会登录到别的mysql服务。
密码的修改问题???
如何关闭mysql–mysqladmin?
1 | ./bin/mysqladmin shutdown -S /usr/local/mysql/config/mysql.sock |
1 | /path/myenv/mysql/bin/mysqld --defaults-file=/path/myenv/data/my.cnf --basedir=/path/myenv/mysql --datadir=/path/myenv/mysql/data --plugin-dir=/path/myenv/mysql/lib/plugin --user=root --log-error=/path/myenv/data/error.log --pid-file=/path/myenv/data/mysql.pid --socket=/path/myenv/data/mysql.sock --port=13306 |
/usr/local/mysql/scripts/mysql_install_db
1 | PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! |
1 | insert into `user` VALUES('9.137.94.128','root','*1EADAEB11872E413816FE51216C9134766DF39F9','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','','N'); |