【记录】Ubuntu20.04安装mysql

1、安装数据库

bash 复制代码
sudo apt update
sudo apt install mysql-server

2、查看数据库是否运行

bash 复制代码
sudo systemctl status mysql

若数据库未运行,则执行下述命令打开mysql服务:

bash 复制代码
sudo systemctl start mysql

3、设置密码

使用MySQL安装附带的脚本mysql_secure_installation; mysql_secure_installation 是 MySQL 官方提供的用于快速配置数据库安全选项的脚本,能帮你设置密码策略、移除匿名用户、禁止 root 远程登录等,提升 MySQL 运行安全性 。

bash 复制代码
sudo mysql_secure_installation

首先,输入y,开始进行设置

设置密码等级:分为 低 中 高 ,可自行选择,这里我使用0,低级密码

为了方便测试,系统会有一个匿名用户,这里可选择删除或保留,这里我选择保留

询问是否允许使用root用户远程连接数据库,这里我选择n

选择是否删除测试数据库,这里我选择y

选择y,重新加载权限表

4、运行mysql

以上若未设置密码,可通过命令进行密码设置:(修改密码之后,不能够使用sudo mysql登录mysql)

bash 复制代码
ALTER USER '用户名'@'主机地址' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

5、问题解决

5.1 使用命令连接出错

该错误为权限问题,在root权限下正常

若非root权限,mysql调用/tmp/mysql.sock,但是这个位置并没有对应文件

临时解决方案:

通过命令指定访问的sock位置

bash 复制代码
mysql -u root -p --socket=/var/run/mysqld/mysqld.sock

永久解决方案:

修改配置文件,指定sock位置

若出现权限问题,还需要更改sock权限

bash 复制代码
sudo chmod 777 /var/run/mysqld/mysqld.sock

5.2 密码过于简单

执行命令,查看权限要求:

bash 复制代码
SHOW VARIABLES LIKE 'validate_password%';

短期有效:

bash 复制代码
SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=4;

永久有效:

可以编辑 MySQL 的配置文件(通常是 /etc/my.cnf/etc/mysql/my.cnf ),在 [mysqld] 配置节下添加或修改以下内容:

bash 复制代码
[mysqld]
validate_password.policy=LOW
validate_password.length=4

修改完配置文件之后,需要重启mysql服务:

bash 复制代码
sudo systemctl restart mysql
sudo systemctl status mysql 

5.3 远程连接失败

方式 A:允许特定 IP(最安全,推荐生产环境)
sql 复制代码
-- 替换 user_name、password、IP 为你的实际值
CREATE USER 'user_name'@'192.168.13.110' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'192.168.13.110' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • user_name:你要用于远程连接的用户名(比如 root,但生产不建议用 root)。
  • password:该用户的密码。
  • 192.168.13.110:需要连接的客户端 IP。
方式 B:允许任意 IP(方便测试,生产慎用)
复制代码
-- 允许 root(或其他用户)从任意 IP 连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • % 表示允许所有 IP 连接,适合测试环境,但生产环境暴露 root@% 有安全风险!

若还不行,需要修改一下配置文件:

修改配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf

相关推荐
睡不醒男孩03082321 分钟前
生产环境故障销账:PostgreSQL 突发连接数暴涨与死锁,如何利用 CLup 秒级定位与解锁?
运维·数据库
2601_9620549523 分钟前
终端与IDE形态的vibe coding实测:两款AI编程工具迭代能力对比
数据库·ide·ai编程
万岳科技34 分钟前
教育培训系统开发流程详解:平台建设关键环节解析
数据库·后端·学习
Nturmoils35 分钟前
线上修一批脏数据,先别急着全量重来
数据库·后端
吴声子夜歌38 分钟前
SQL经典实例——处理字符串
数据库·sql
睡不醒男孩0308231 小时前
PostgreSQL 数据库运维转型:从传统模式到 CLup 平台的 25 个核心 FAQ
运维·数据库·postgresql
凡人叶枫1 小时前
Effective C++ 条款40:明智而审慎地使用多重继承
java·数据库·c++·嵌入式开发·effective c++
至此流年莫相忘2 小时前
Spring 依赖注入三剑客:@Autowired、@Resource 与 @RequiredArgsConstructor 深度对比与实战指南
java·数据库·spring
Rain5092 小时前
2.2 数据基础:数据库集成与 ORM(TypeORM / Prisma)
数据库·人工智能·ai·数据分析·node.js·自动化·ai编程
杨云龙UP2 小时前
Oracle/ODA RAC /u01 空间告警处理指南:grid 用户监听日志清理_2026-06-15
linux·数据库·oracle·oracle linux·oda·监听日志·在线清理