Linux下执行
systemctl start mysqld
或`service mysql start前提条件准备
确保已安装MySQL服务器
若未安装需先执行以下命令(以CentOS为例):
sudo yum install mysql-server -y # RHEL/CentOS系 # 或 Ubuntu/Debian系: sudo apt update && sudo apt install mysql-server -y
初始化MySQL数据目录(仅首次启动前需要)
✅ 关键操作:新建空数据目录并赋予权限
⚠️ 注意:此操作会删除现有数据,生产环境慎用!
sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
随后创建符号链接并设置所有权:
sudo chown -R mysql:mysql /var/lib/mysql sudo ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
核心启动方式对照表
场景 | 命令 | 说明 |
---|---|---|
立即启动服务 | sudo systemctl start mysqld |
标准Systemd方式 |
开机自启 | sudo systemctl enable mysqld |
加入开机启动项 |
停止服务 | sudo systemctl stop mysqld |
|
重启服务 | sudo systemctl restart mysqld |
|
查看运行状态 | sudo systemctl status mysqld |
显示活跃进程及日志路径 |
传统init脚本 | sudo service mysqld start |
兼容老旧系统 |
启动后必做校验
确认服务进程存在
ps aux | grep mysqld # 应看到类似输出: # mysql XXXXX ... /usr/sbin/mysqld --daemonize --pid-file=...
测试本地连接
mysql -u root -p # 输入初始临时密码(见error log) # 成功提示符:Welcome to the MySQL monitor...
查看错误日志位置
grep 'temporary password' /var/log/mysqld.log # 示例输出:[Note] A temporary password is generated for root@localhost: Abcdefgh123!
高级配置要点
配置项 | 操作命令 | 效果说明 |
---|---|---|
开放远程访问 | ALTER USER 'root'@'%' IDENTIFIED BY 'NewPass!'; |
允许任意IP登录 |
修改默认字符集 | [mysqld] default-character-set=utf8mb4 |
写入/etc/my.cnf后重启生效 |
调整最大连接数 | [mysqld] max_connections=500 |
提升并发能力 |
绑定特定网卡 | [mysqld] bind-address=192.168.1.100 |
增强安全性 |
常见问题排查
Q1: 报错 “Can’t connect to local MySQL server through socket”
原因:Socket文件缺失或权限不足
解决方案:
- 检查Socket文件是否存在:
ls -l /var/run/mysqld/mysqld.sock
- 重建Socket链接:
sudo ln -sf /var/lib/mysql/mysql.sock /tmp/mysql.sock
- 确认AppArmor/Selinux未拦截:
sudo setenforce 0
(临时禁用)
Q2: 远程连接被拒绝
原因:防火墙阻断或未授权用户
解决方案:
- 开放3306端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
- 刷新防火墙规则:
sudo firewall-cmd --reload
- 授予远程权限:
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'YourPassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
相关问题与解答
Q: 如何修改MySQL根用户密码?
A:
- 登录MySQL控制台:
mysql -u root -p
- 执行改密命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewSecurePassword!';
- 刷新权限:
FLUSH PRIVILEGES;
Q: 启动时报”Tablespace does not exist”错误如何处理?
A:
该错误表明数据目录损坏,需按以下步骤修复:
- 停止MySQL服务:
sudo systemctl stop mysqld
- 备份现有数据:
sudo mv /var/lib/mysql{,.bak}
- 重新初始化:
sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
- 恢复备份数据到新目录
- 启动服务:`sudo systemctl start
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/105579.html