# MySQL/MariaDB
systemctl status mysqld
systemctl status mariadb
# PostgreSQL
systemctl status postgresql
# MongoDB
systemctl status mongod
netstat -tulnp | grep -E '3306|5432|27017' # 常见端口: MySQL-3306, PostgreSQL-5432, MongoDB-27017
sudo iptables -L -n
sudo ufw status # 如果使用UFW防火墙
# MySQL
mysql -u username -p -h localhost
# PostgreSQL
psql -U username -h localhost
# MongoDB
mongo --host localhost -u username -p
# 启动数据库服务
sudo systemctl start mysqld
# 开放防火墙端口(以MySQL为例)
sudo ufw allow 3306/tcp
# 或
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
# 修改绑定地址(MySQL示例)
# 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf
# 修改 bind-address = 0.0.0.0
# 然后重启服务
sudo systemctl restart mysqld
# MySQL重置密码
sudo mysql -u root
ALTER USER 'username'@'%' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
# 授予远程访问权限(MySQL)
GRANT ALL PRIVILEGES ON database.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
# PostgreSQL修改pg_hba.conf
# 添加或修改行如:
# host all all 0.0.0.0/0 md5
# 然后重启服务
sudo systemctl restart postgresql
# MySQL创建数据库
mysql -u root -p
CREATE DATABASE dbname;
# 授予用户权限
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%';
FLUSH PRIVILEGES;
# MySQL
sudo tail -f /var/log/mysql/error.log
# PostgreSQL
sudo tail -f /var/log/postgresql/postgresql-version-main.log
# MongoDB
sudo tail -f /var/log/mongodb/mongod.log
telnet server_ip 3306
getenforce
# 如果Enforcing,可以临时设置为Permissive
sudo setenforce 0
通过以上步骤,可以诊断和解决大多数Linux环境下的数据库连接问题。对于特定数据库系统,可能需要查阅其官方文档获取更详细的配置信息。