大家可能都知道一条机器可以装多个mysql,也知道是通过修改端口号来实现,但是下面我要说的是 深入一点的细节问题(自认为是细节):
mysql.exe就是mysql 的客户端登录程序,比如这里你已经有一个mysql安装版,还有一个绿色版,这时就有两个mysql.exe。也就是两个客户端(当然,由于安装版mysql中的mysql.exe在系统变量中有记录,如果你总是在cmd直接敲mysql或者运行栏中直接敲mysql,总是运行的是安装版的客户端,这一点要清楚,你当然可以cmd到绿色版的bin目录下,再mysql的就是绿色版的mysql.exe)。
上面的()里说了一大堆,有什么用呢? 问题关键就是这两个版本的mysql.exe 在你运行时,都会默认添加一个端口号 (-P),这个端口号默认并不是3306, 而是在mysql.exe所对应 的my.ini中的 [client]中定义
#password = your_password
port = 3305
socket = /tmp/mysql.sock。
当你想要实现2个mysql共存时,比如安装版的mysql的端口不变,绿色版的端口设置为3307 (具体就是:
[client]
#password = your_password
port = 3307
socket = /tmp/mysql.sock
并且
[mysqld]
port=3307
explicit_defaults_for_timestamp = TRUE
)
安装版的用户名 和 密码 绿色版的用户名 和 密码
root rootroot root 空
位置C盘 位置D盘
还要说一点:无论是安装版还是绿色版的 mysql.exe 即客户端 , 都能访问 安装版或绿色版的服务端(服务),也就是有2个实体和2个实体可以连4条线
在你开启两个服务后,下面就是访问问题:
①用安装版的客户端访问安装版的服务 : (cmd 进入C:\mysql\bin) 输入 mysql -uroot -prootroot
②用安装版的客户端访问绿色版的服务: (cmd进入 C:\mysql\bin) 输入 mysql -uroot -p -P3307 然后
Enter password: (因为是空,直接回车)
(解释一下:因为是使用安装版的客户端访问2个不同的mysql服务,而你有没有改安装版的端口,所以上面敲的两个mysql命令默认添加在最后的都是在安装版中的my.ini中写下的client端口,也就是3306,所以①不用再加端口,②必须加3307(绿色版的服务监听的是3307))
③ 用绿色版的客户端访问安装版的服务:(cmd进入D:\mysql\bin) 输入 mysql -uroot -prootroot -P3306
④用绿色版的客户端访问绿色版的服务:(cmd进入D:\mysql\bin) 输入 mysql-uroot -p
Enter password: (因为是空,直接回车)
(也解释一下,因为用的都是绿色版的客户端,mysql.exe,都绿色版对应的my.ini中的[client]的port=3307,所以③和④默认都是在最后面加 -P3007,所以访问绿色版不用子在加,绿色版服务是3307,安装版服务是3306 ,必须加 -P3306)
知道了这4种情况和其中的原理,在联不了或者超出你预期的能联就可以解释了。
最后在说两点;
一。 如果有一个安装版一个绿色版,那么无论是开始菜单里,还是cmd'直接都是运行的,都是安装版的客户端,这是你要根据情况来确定要加端口
如果多个安装版,开始菜单运行的时那个只有自己看清楚,而cmd运行的总是环境变量中前面的那个,也要根据情况来确定要加的端口
二。 你也可以不把my.ini总client和mysqld的端口配置一样,比如两个client都写3306,安装版的mysqld写3306, 绿色的写3307, 这样,无论那个客户端,默默人都是3306,访问的都是安装版,要访问绿色版,都添加3307, 当然密码是要各自写各自的。