Ubuntu 24.04上安装MySQL 8.0

在Ubuntu 24.04上安装MySQL 8.0有多种方法,以下是几种常见的安装方式:

方法一:使用APT官方仓库安装(推荐)

1. 更新软件包索引

bash 复制代码
sudo apt update

2. 安装MySQL服务器

bash 复制代码
sudo apt install mysql-server

3. 启动MySQL服务

bash 复制代码
sudo systemctl start mysql
sudo systemctl enable mysql

4. 检查MySQL状态

bash 复制代码
sudo systemctl status mysql

方法二:使用MySQL官方仓库安装

安全配置

运行安全安装脚本

bash 复制代码
sudo mysql_secure_installation

按照提示进行安全配置:

  • 设置验证密码策略 Y

  • 设置root密码

  • 移除匿名用户 Y

  • 禁止远程root登录 Y

  • 移除测试数据库 Y

  • 重新加载权限表 Y

基本操作命令

启动/停止/重启MySQL

bash 复制代码
sudo systemctl start mysql    # 启动
sudo systemctl stop mysql     # 停止
sudo systemctl restart mysql  # 重启
sudo systemctl status mysql   # 查看状态

连接MySQL

bash 复制代码
sudo mysql -u root -p
复制代码
root默认密码为空,没有密码

配置远程访问(可选)

1. 修改MySQL配置

编辑配置文件:

bash 复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 并修改:

text

复制代码
bind-address = 0.0.0.0

2. 创建远程访问用户

bash 复制代码
CREATE USER 'pplsunny'@'%' IDENTIFIED BY '1qazxsw2';

GRANT ALL PRIVILEGES ON *.* TO 'pplsunny'@'%';

FLUSH PRIVILEGES;
复制代码

3. 重启MySQL服务

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

常见问题解决

忘记root密码

  1. 停止MySQL服务:
bash 复制代码
sudo systemctl stop mysql
  1. 跳过权限检查启动:
bash 复制代码
sudo mysqld_safe --skip-grant-tables &
  1. 连接并重置密码:
bash 复制代码
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;
  1. 重启MySQL服务:

bash

复制代码
sudo systemctl restart mysql

查看MySQL版本

bash

复制代码
mysql --version

验证安装

安装完成后,可以通过以下命令验证:

bash

复制代码
sudo mysql -u root -p -e "SELECT VERSION();"

这样就在Ubuntu 24.04上成功安装了MySQL 8.0。建议使用第一种方法,因为它最简单且由Ubuntu官方维护。

在Ubuntu 24.04上设置MySQL root密码有多种方法,以下是详细的步骤:

方法一:使用mysql_secure_installation(推荐)

1. 运行安全配置脚本

bash

复制代码
sudo mysql_secure_installation

2. 按照提示操作

text

复制代码
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: 
  • 选择密码验证策略 :建议选择 Y 来启用密码强度验证

  • 选择密码级别

    • 0 = 低强度

    • 1 = 中等强度

    • 2 = 高强度

bash 复制代码
Please set the password for root here.

New password: [输入新密码]
Re-enter new password: [再次输入密码]
  • 输入并确认root密码

  • 移除匿名用户 :选择 Y

  • 禁止远程root登录 :选择 Y

  • 移除test数据库 :选择 Y

  • 重新加载权限表 :选择 Y

方法二:直接使用MySQL命令行

1. 以root身份登录MySQL(初始无密码)

bash 复制代码
sudo mysql

2. 在MySQL中设置root密码

sql

bash 复制代码
-- 选择mysql数据库
USE mysql;

-- 设置root用户密码(替换'your_password'为实际密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

方法三:如果已经知道当前密码

1. 登录MySQL

bash

复制代码
mysql -u root -p

2. 修改密码

sql

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
FLUSH PRIVILEGES;
EXIT;

方法四:使用mysqladmin

bash

复制代码
sudo mysqladmin -u root password "new_strong_password"

或者如果已经有密码需要修改:

bash

复制代码
sudo mysqladmin -u root -p'old_password' password "new_strong_password"

验证密码设置

测试新密码登录

bash

复制代码
mysql -u root -p

输入新设置的密码,应该能成功登录。

检查用户认证信息

sql

复制代码
SELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'root';

密码策略配置(可选)

查看当前密码策略

sql

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

修改密码策略(如果需要)

sql

复制代码
-- 设置密码长度要求
SET GLOBAL validate_password.length = 8;

-- 设置密码策略级别(0=LOW, 1=MEDIUM, 2=STRONG)
SET GLOBAL validate_password.policy = 1;

-- 使配置永久生效
SET PERSIST validate_password.policy = 1;

常见问题解决

如果无法登录

  1. 停止MySQL服务

bash

复制代码
sudo systemctl stop mysql
  1. 跳过权限检查启动

bash

复制代码
sudo mysqld_safe --skip-grant-tables &
  1. 重新设置密码

sql

复制代码
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;
  1. 重启MySQL服务

bash

复制代码
sudo systemctl restart mysql

密码强度要求错误

如果遇到密码不符合策略要求,可以:

  • 设置更强的密码

  • 或者临时降低密码策略级别

sql

复制代码
SET GLOBAL validate_password.policy = 0;

安全建议

  1. 使用强密码:包含大小写字母、数字和特殊字符

  2. 定期更换密码

  3. 不要共享root密码

  4. 为不同应用创建单独的用户

完成以上步骤后,MySQL root用户的密码就设置成功了!

相关推荐
luoluoal1 小时前
基于python的病人信息管理系统及安全策略分析(源码+文档)
python·mysql·django·毕业设计·源码
倔强的石头1062 小时前
【金仓数据库】ksql 指南(五) —— 创建与管理索引和视图(KingbaseES 查询优化核心)
数据库·oracle·kingbase
数据知道2 小时前
PostgreSQL 的开源扩展:高效存储和检索向量数据的 PGVector 的详细使用
数据库·postgresql·开源
海盗12347 小时前
MySQL主从复制的配置方式
android·mysql·adb
前进的李工8 小时前
SQL聚合函数与分组查询详解
数据库·sql·mysql
Evan10249 小时前
MySQL 8.4.7版本下载&安装详细教程(Win11环境)
mysql
2301_8000509910 小时前
mysql
数据库·笔记·mysql
数据皮皮侠10 小时前
2m气温数据集(1940-2024)
大数据·数据库·人工智能·制造·微信开放平台
Psycho_MrZhang10 小时前
Redis 设计思想总结
数据库·redis·缓存
曹牧11 小时前
Java:Assert.isTrue()
java·前端·数据库