mysql配置多个端⼝_mysqllinux端配置多个端⼝
匿名⽤户
1级
2016-05-13 回答
在同⼀个mysqld上运⾏多个端⼝服务器的3306端⼝上已经运⾏了⼀个mysql服务,配置⽂件位于默认的 etc my
cnf下,现在需要再开⼀个端⼝运⾏mysql服务,希望能重⽤当前mysql的配置(修改某项共⽤配置时只需要修改⼀
在同⼀个mysqld上运⾏多个端⼝
服务器的3306端⼝上已经运⾏了⼀个mysql服务,配置⽂件位于默认的/etc/myf下,现在需要再开⼀个端⼝运⾏mysql服务,希望能重⽤当前mysql的配置(修改某项共⽤配置时只需要修改⼀处即可)。
⽹上有⼀篇通过mysqld_multi在同⼀个mysql下运⾏多个⽰例的⽂章,它是在配置⽂件的[mysqld_multi]
⾥指定程序路径,[mysqld1]、[mysql2]⾥分别指定相应的配置。但我还是想直接通过mysqld_safe⽅式启动,不想在公共配置⾥指定每⼀个datadir⽬录。经过⼀番摸索,可以这样做:
0.
当前默认端⼝3306的配置和启动⽅式:
/etc/my.ini中的配置:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
通过如下⽅式启动
cd /usr/local/stow/mysql-5.0.51a-linux-i686-icc-glibc23
./bin/mysqld_safe
1.
配置3307端⼝mysql
1.1
创建数据库
cd /usr/local/stow/mysql-5.0.51a-linux-i686-icc-glibc23
./scripts/mysql_install_db --datadir=/home/zhouguoqiang/tmp/mysql_3307/data
不必理会其中的warning、ERROR信息。此外,如果没有特殊说明,下⽂均是在当前⽬录下操作。
1.2
指定3307专有的配置
编辑⽂件/home/zhouguoqiang/tmp/mysql_3307/myf,添加如下内容:
[mysqld]
port= 3307
socket= /tmp/mysql_3307.sock
datadir= /home/zhouguoqiang/tmp/mysql_3307/data
innodb_data_home_dir = /home/zhouguoqiang/tmp/mysql_3307/data
innodb_log_group_home_dir = /home/zhouguoqiang/tmp/mysql_3307/data
注意,如果使⽤了innodb类型的数据库或者/etc/myf⾥指定了innodb⽬录相关的参数,这⾥⼀定要重新指定成适当位置,否则将会共⽤3306中的innodb_data_home_dir和innodb_log_group_home_dir,进⽽导致3307端⼝的mysql启动失败(没有权限或者⽂件被锁)。
1.3mysql下载配置
启动3307端⼝的数据库
./bin/mysqld_safe --defaults-extra-file=/home/zhouguoqiang/tmp/mysql_3307/myf
需要注意的是,还有⼀个参数--defaults-file,⼆者是有区别的:
--defaults-file
加载指定的配置⽂件,将会完全覆盖/etc/myf中的配置
--default-extra-file
加载配置⽂件中指定的项,不会完全覆盖/etc/myf中的配置。如果同时在/etc/myf中配置过,将会优先使⽤指定配置⽂件⾥的。
1.4
访问3307端⼝的数据库
由于默认是3306端⼝,因此需要指定端⼝号
mysql -uroot -P 3307 -h 127.0.0.1
必须指定-h,⽽且不能使⽤localhost
1.5
停⽌3307端⼝的数据库
mysqladmin -uroot -S /tmp/mysql_3307.sock shutdown
参考资料:
追问:
没⽤啊!cd /usr/local/stow/mysql-5.0.51a-linux-i686-icc-glibc23 你这个⽬录是mysql解压的⽬录,还是已经装好3306的mysql⽬录?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。