在 Ubuntu 上连接 MySQL,常见有几种方式,下面按使用场景给你详细说明(从最常见到进阶)。
sudo systemctl status mysql
如果没启动:
sudo systemctl start mysql
mysql -u 用户名 -p
示例:
mysql -u root -p
然后输入 MySQL 用户密码。
✅ 成功后会看到:
mysql>
mysql -u root -p 数据库名
示例:
mysql -u root -p testdb
默认端口是 3306
mysql -u root -p -h 127.0.0.1 -P 3306
编辑配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
重启 MySQL:
sudo systemctl restart mysql
登录 MySQL:
mysql -u root -p
执行:
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
⚠️ 生产环境不建议 %,可指定 IP:
'remoteuser'@'192.168.1.100'
mysql -u remoteuser -p -h 服务器IP
import mysql.connector
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="testdb"
)
new mysqli("localhost", "root", "password", "testdb");
Access deniedCan't connect to MySQL serversudo systemctl status mysql
检查端口:
ss -lntp | grep 3306
如果你需要,我可以单独给你 Ubuntu MySQL 重置 root 密码教程。
| 场景 | 命令 |
|---|---|
| 本地连接 | mysql -u root -p |
| 指定数据库 | mysql -u root -p dbname |
| 指定 IP | mysql -u user -p -h IP |
| 远程连接 | 改 bind + 授权 |
如果你告诉我:
我可以给你更精确的命令 ✅