我试图通过本地networking连接到一个MySQL服务器。 服务器正在运行并正在侦听41322。
dylan~$ netstat -ln | s mysql unix 2 [ ACC ] STREAM LISTENING 41322 /var/run/mysqld/mysqld.sock
我的用户被授予所有地址的所有权利,我可以在本地login。
dylan~$ mysqladmin -P 41322 -h [email protected] create database test mysqladmin: connect to server at '[email protected]' failed error: 'Unknown MySQL server host '[email protected]' (1)' Check that mysqld is running on [email protected] and that the port is 41322. You can check this by doing 'telnet [email protected] 41322'
添加–verbose标志不会产生额外的输出。 我在服务器上的/etc/mysql/my.cnf中/etc/mysql/my.cnf了bind-address=127.0.0.1 。 我可以ssh到服务器没有问题。
dylan~$ ps a | grep mysql 11131 pts/3 S 0:00 /bin/sh /usr/bin/mysqld_safe 11170 pts/3 Sl 0:03 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock 11171 pts/3 S 0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld 13710 pts/1 S+ 0:00 grep mysq
任何帮助或想法表示赞赏。
它看起来像你的MySQL守护进程没有监听TCP端口。 您的netstat输出显示mysql正在侦听inode 41322(文件/var/run/mysqld/mysqld.sock)上的UNIX域套接字。
你没有提到你的操作系统,但我假设你使用-l标志来使用netstat。 要显示所有侦听的TCP和UDP端口以及在Linux上使用它们的守护程序,请运行netstat -ltunp
一些默认的MySQL安装在configuration文件中有“skip-networking”,通常是/etc/my.cnf或/etc/mysql/my.cnf。 如果选项存在,则将该选项注释掉,然后重新启动守护进程。