我发现很难在jdbc和mysql之间建立链接。我认为其中一个原因是mysql端口。我用语句检查了端口:“show variables like'port';”在mysql中。答案是
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 0 |
+---------------+-------+
1 row in set (0.07 sec)
我的操作系统是archlinux。 如何将mysql端口从0更改为3306?
我更改了/etc/my.cnf和/etc/mysql/my.cnf中的端口号。但它没有用。
答案 0 :(得分:12)
首先检查SHOW VARIABLES LIKE 'skip_networking';
如果报告skip_networking = On,你的mysqld在没有网络支持的情况下启动(导致端口系统变量中的值为0)。
如果是这种情况,您很可能必须检查mysqld的init脚本,最有可能在/etc/init.d/mysql
下,在此处搜索--skip-networking
并注释掉(删除)此部分。完成此过程后,您必须重新启动mysqld。
Normaly没有必要明确设置端口3306,因为3306是mjysqld监听的默认端口。
答案 1 :(得分:1)
在我的ubuntu安装中,在/etc/mysql/my.cnf中有一行说:
[mysqld]
port = 3306
<snip...>
尝试相应地更改此值并重新启动mysql。
希望它适合你。
答案 2 :(得分:1)
您需要从mysql配置文件中更改此值。步骤是:
转到相关文件:sudo nano /etc/mysql/my.cnf
要搜索相关行:(对于Win,Linux)ctrl + w
,(对于Mac)cmd + w
port = 0
(look for twice for [client] and [mysqld] sections)
port = 3306
ctrl + x , cmd + x y
sudo service mysql restart
答案 3 :(得分:0)
您需要在/etc/my.cnf中编辑您的mysql配置文件my.cnf并将端口更改为3306.然后重启mysql。
来源:http://www.cyberciti.biz/faq/change-default-mysql-port-under-linuxunix/
编辑:
此网站可能会为您的特定平台提供更多帮助: https://wiki.archlinux.org/index.php/MySQL#Configuration
有一部分讨论复制my.cnf文件:
复制您选择的配置文件:
# cp /usr/local/mysql/support-files/my-medium.cnf /usr/local/mysql/data/my.cnf
答案 4 :(得分:0)
您可以在MySQL配置文件中更改端口号:my.cnf
答案 5 :(得分:0)
我遇到了这个问题,因为我忘记了我用--skip-networking
标志启动了mysqld以重置MySQL root密码,如下所示:
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
运行ps aux | grep mysql
,您可能会看到流程(或其中一对)仍在闲逛。如果是这样,请将其删除/然后重新启动mysql。
答案 6 :(得分:0)
允许远程连接已修复,未更改“像'PORT'这样的GLOBAL VARIABLES';” 编辑my.cnf /etc/my.cnf
[mysqld]
user = mysql
basedir = /usr
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 65.55.55.2
# your mysql server ip address should place in bind-address
# skip-networking
重新启动mysql服务
答案 7 :(得分:0)
在通过运行 mysqld --skip-grant-tables --skip-networking 重置 root 的 PWD 后,我在 MySQL8 社区中遇到了同样的错误。
FLUSH PRIVILEGES; can't help for that even adding skip-networking =OFF and adding port=3306 in my.cnf and restart still can't help. then I found this solution
检查哪些文件覆盖了 my.cnf
sudo grep -rnw '/etc/' -e 'skip-networking
/etc/systemd/system/mysqld.service.d/override.conf:3:ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking /etc/my.cnf:28:#skip-networking
删除override.conf
rm -rf /etc/systemd/system/mysqld.service.d/override.conf
mysqld.service 已在磁盘上更改
systemctl daemon-reload
重启 MySQL
systemctl 重启 mysqld