文章目录
  1. 1. centos下如何同时运行两个mysql实例
  2. 2. 1.背景
  3. 3. 2.分析
  4. 4. 3.解决方案
    1. 4.1. 3.1 创建新实例的数据目录
    2. 4.2. 3.2 创建数据库
    3. 4.3. 3.3 配置文件
    4. 4.4. 3.4 启动mysql服务
    5. 4.5. 3.5 查看当前mysql端口占用
    6. 4.6. 3.6 本地登陆mysql数据库
  5. 5. 4. 遇到的问题
    1. 5.1. 4.1 本地无法登陆mysql
  6. 6. 5. 参考博文

centos下如何同时运行两个mysql实例

1.背景

由于使用了gitlab一键包,所以本机已经启动了一个mysql实例,端口号为:33061
现在需要启动另一个mysql实例,启动报错

运行命令service mysqld start

1
MySQL错误Another MySQL daemon already running with the same unix socket.

2.分析

因为已经有一个mysql实例启动,所用的SOCKET连接文件位于/tmp/mysql.sock,因此再启动mysqld会发现该文件已经被使用,才会报上面的错误。

3.解决方案

3.1 创建新实例的数据目录

此处我创建的实例路径为:/var/lib/mysql2
并且给该目录分配mysql用户权限 chown -R mysql /var/lib/mysql2

3.2 创建数据库

刚刚建立的目录下面,初始化数据库。

/usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql2

将mysql等系统数据库安装到实例准备运行的目录。

3.3 配置文件

我自己的配置文件,路径在/etc/my.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[mysqld_multi]
mysqld = /usr/mysql/bin/mysqld_safe
mysqladmin = /usr/mysql/bin/mysqladmin
user = root
[mysqld]
datadir=/var/lib/mysql2
socket=/var/lib/mysql2/mysql.sock
user=mysql
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld2.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket = /var/lib/mysql2/mysql.sock

3.4 启动mysql服务

service mysqld start
哇咔咔 成功了!

3.5 查看当前mysql端口占用

1
2
3
netstat -alntp |grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27900/mysqld
tcp 0 0 127.0.0.1:33061 0.0.0.0:* LISTEN 19135/mysqld.bin

3.6 本地登陆mysql数据库

mysql -uroot -p 回车

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.71 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4. 遇到的问题

4.1 本地无法登陆mysql

提示:

1
RROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

检查配置文件my.cnf,最后加入

1
2
[client]
socket = /var/lib/mysql2/mysql.sock

重启服务后,解决。

5. 参考博文

文章目录
  1. 1. centos下如何同时运行两个mysql实例
  2. 2. 1.背景
  3. 3. 2.分析
  4. 4. 3.解决方案
    1. 4.1. 3.1 创建新实例的数据目录
    2. 4.2. 3.2 创建数据库
    3. 4.3. 3.3 配置文件
    4. 4.4. 3.4 启动mysql服务
    5. 4.5. 3.5 查看当前mysql端口占用
    6. 4.6. 3.6 本地登陆mysql数据库
  5. 5. 4. 遇到的问题
    1. 5.1. 4.1 本地无法登陆mysql
  6. 6. 5. 参考博文