mysql 怎么配置多个端口

mysql 怎么配置多个端口,第1张

在同一个mysqld上运行多个端口服务器的3306端口上已经运行了一个mysql服务,配置文件位于默认的 etc my

cnf下,现在需要再开一个端口运行mysql服务,希望能重用当前mysql的配置(修改某项共用配置时只需要修改一

在同一个mysqld上运行多个端口

服务器的3306端口上已经运行了一个mysql服务,配置文件位于默认的/etc/my.cnf下,现在需要再开一个端口运行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/my.cnf,添加如下内容:

[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/my.cnf里指定了innodb目录相关的参数,这里一定要重新指定成适当位置,否则将会共用3306中的innodb_data_home_dir和innodb_log_group_home_dir,进而导致3307端口的mysql启动失败(没有权限或者文件被锁)。

1.3

启动3307端口的数据库

./bin/mysqld_safe --defaults-extra-file=/home/zhouguoqiang/tmp/mysql_3307/my.cnf

需要注意的是,还有一个参数--defaults-file,二者是有区别的:

--defaults-file

加载指定的配置文件,将会完全覆盖/etc/my.cnf中的配置

--default-extra-file

加载配置文件中指定的项,不会完全覆盖/etc/my.cnf中的配置。如果同时在/etc/my.cnf中配置过,将会优先使用指定配置文件里的。

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

mysql占用25000多端口的解决方法:

你可以修改mysql的端口,这样不会和10061端口冲突!具体可以为:vi 你的mysql配置文件,一般为/etc/my。

cnf现举例:vi /etc/my。

cnf[mysqld]port=一个没有占用的端口,一般为1024-65536

如何查看mysql的端口号

-- 输入以下命令:SHOW VARIABLES WHERE VARIABLE_NAME='port'就可以查看当前连接的端口号,-- 例如:mysql>SHOW VARIABLES WHERE VARIABLE_NAME='port'

tomcat端口号

刚刚碰到类似的问题,3306被占用,我的一个mysql实例也是用的3307端口。

备份脚本执行了之后不起作用,想到是端口号的问题导致的。

正确的写法应该是加一个参数:-P。

P这里一定要大写,和-ppassword的-p要区别开来,配置密码的-p是小写的。

所以最终写成:mysqldump -h localhost -P3307 -u username -p dbname table1 table2 。

这样就可以了,localhost:3307这样的写法有些想当然了,其实是不行的。

mysql administrator修改端口号后无法登陆

apache配置里面有个端口号 叫listen:80 也可以改成其他的。

1、使用nestat命令查看3306端口状态:

~# netstat -an | grep 3306

tcp 0 0 (服务器本地ip地址):3306 0.0.0.0:* LISTEN

从结果可以看出3306端口只是在(服务器本地ip地址)上监听,所以拒绝了其他IP的访问。

2、确定问题时因为3306端口没有开放,那么就需要修改MySQL的配置文件来解决:

使用命令 vim/etc/mysql/my.cnf打开MySQL配置文件,可以看到如下配置信息:

#Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

bind-address = (服务器本地ip地址)

把最后一行注释掉或者把(服务器本地ip地址)换成你希望的IP

3、使用命令 service mysql restart重启MySQL服务

4、再次使用Navicat用root账户尝试连接,发现可以正常连接


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7749185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存