在 Ubuntu 上设置 MySQL(或 MariaDB)的账号和密码,主要包括 root 用户密码配置 和 创建新用户。以下是详细步骤:
1. 安装 MySQL
如果尚未安装,执行以下命令:
sudo apt update
sudo apt install mysql-server -y
2. 初始化安全配置(设置 root 密码)
运行安全脚本,交互式设置 root 密码和其他安全选项:
sudo mysql_secure_installation
按提示操作:
- 输入临时密码(首次安装可能为空,直接回车)。
- 设置 root 用户的密码。
- 移除匿名用户、禁止远程 root 登录、删除测试数据库等。
3. (可选)手动修改 root 密码
如果未通过上述步骤设置密码,或者需要重置:
方法一:已知道旧密码
sudo mysql -u root -p
输入旧密码后,在 MySQL Shell 中执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;
方法二:忘记旧密码
- 停止 MySQL 服务:
sudo systemctl stop mysql
- 跳过权限检查启动 MySQL:
sudo mysqld_safe --skip-grant-tables &
- 无密码登录并修改密码:
在 MySQL Shell 中依次执行:mysql -u root
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; EXIT;
- 重启 MySQL:
sudo systemctl restart mysql
4. 创建新用户并授权
创建用户
CREATE USER '用户名'@'localhost' IDENTIFIED BY '你的密码';
授予权限(示例:授予所有数据库权限)
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
允许远程访问(可选)
将 localhost
改为 %
(不推荐生产环境使用):
CREATE USER '用户名'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
FLUSH PRIVILEGES;
5. 验证配置
测试登录
mysql -u [用户名] -p
#输入密码后成功进入即表示配置正确。
查看用户列表
SELECT User, Host FROM mysql.user;
6. (重要)配置文件调整
如果需要远程访问,编辑配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
,注释掉 bind-address
:
ini bind-address =127.0.0.1→ #bind-address=127.0.0.1
然后重启服务:
sudo systemctl restart mysql
常见问题解决
错误:
Access denied for user
检查是否拼写错误或未刷新权限(执行FLUSH PRIVILEGES;
)。MySQL服务无法启动
查看日志定位原因:sudo journalctl -xe | grep mysql
3.修改默认认证插件(MySQL8+)
如果客户端工具不兼容默认的 caching_sha2_password
,可改用传统模式:
sql ALTER USER '用户名 '@ localhost’IDENTIFIED WITH mysql_native_password BY ‘password';
通过以上步骤即可完成账号和密码的设置。建议在生产环境中使用强密码并限制远程访问权限!
内容由零声教学AI助手提供,问题来源于学员提问