💁♂️个人主页:进击的荆棘
👇作者其它专栏:
目录
1.卸载不要的环境
2.检查系统安装包
3. 卸载这些默认安装包并备份
4. 获取 MySQL 官方源
5. 安装源,对比前后源目录
6. 看看能不能正常工作
7. 安装 MySQL 服务
8. 查看配置文件和数据存储位置
9.启动服务&查看启动服务
10.登录与修改密码
11.设置开机启动
12.配置my.cnf(修改字符集等)
13.常见问题:密钥过期
说明:
●安装与卸载中,切换成root身份,一旦安装,普通用户能使用
1.卸载不要的环境
bash
# 检查是否有 mariadb 或 mysql 进程
ps ajx | grep -E "mysql|mariadb"
# 停止服务(如果有)
sudo systemctl stop mariadb
sudo systemctl stop mysql
# 卸载默认安装包(彻底清理)
sudo apt purge mysql-server mysql-client mysql-common mariadb-server mariadb-client -y
sudo apt autoremove -y
2.检查系统安装包
bash
dpkg -l | grep -i mysql
dpkg -l | grep -i mariadb
3. 卸载这些默认安装包并备份
bash
# 备份配置文件和数据(对应文档的 /etc/my.cnf 和 /var/lib/mysql)
sudo tar -zcvf /root/mysql_backup.tar.gz /etc/mysql /var/lib/mysql
# 彻底删除目录(极其重要:如果不删干净,重装会报错)
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
4. 获取 MySQL 官方源
注: 如果你的 Ubuntu 是 22.04 及以上,系统默认源里就有 MySQL 8.0/8.4,你可以直接跳过第4、5步去第6步
bash
# 去官网下载最新的 apt-config 包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
5. 安装源,对比前后源目录
bash
# 查看安装前
ls -al /etc/apt/sources.list.d/
# 安装配置包(注意:弹出的界面里选择需要的 MySQL 版本)
sudo dpkg -i mysql-apt-config_0.8.36-1_all.deb
# 更新源
sudo apt update
# 查看安装后,会多出一个 mysql.list
ls -al /etc/apt/sources.list.d/
6. 看看能不能正常工作
bash
apt-cache search mysql-server
7. 安装 MySQL 服务
bash
sudo apt install -y mysql-server
8. 查看配置文件和数据存储位置
配置文件在/etc/mysql/mysql.conf.d/mysqld.cnf,数据在/var/lib/mysql
bash
ls /etc/mysql/mysql.conf.d/mysqld.cnf
sudo ls /var/lib/mysql
9.启动服务&查看启动服务
Ubuntu中MySQL的服务名通常叫mysql(不像CentOS叫mysqld)
bash
# 启动
sudo systemctl start mysql
# 查看进程
ps axj | grep mysql
10.登录与修改密码
Ubuntu(MySQL 8.0+):默认使用auth_socket插件,**root用户默认没有密码,**且只允许系统root身份登录
登录方法一:
bash
# 直接加 sudo 登录,不需要输入密码
sudo mysql
若想设置密码并允许密码登录:
进入sudo mysql后,执行以下SQL语句:
sql
# 修改认证方式并设置密码(把 '你的密码' 换成实际密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的密码';
FLUSH PRIVILEGES;
EXIT;
退出后,就可以用mysql -u root -p加密码登录了
登录方式三:
若在Ubuntu下忘记了密码,可以修改/etc/mysql/mysql.conf.d/mysql.cnf
bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 在 [mysqld] 下面加入一行:
skip-grant-tables
# 重启服务
sudo systemctl restart mysql
# 输入 mysql 即可免密进入,然后修改密码
11.设置开机启动
bash
sudo systemctl enable mysql
12.配置my.cnf(修改字符集等)
bash
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在mysqld标签下添加或修改:
bash
[mysqld]
port = 3306
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
character-set-server = utf8mb4
default-storage-engine = innodb
13.常见问题:密钥过期
若在apt update时遇到MySQL的GPG错误:
bash
# 导入最新的公钥(现代 Ubuntu 推荐方式)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C
若是非常新的系统,apt-key被弃用,可改用:
bash
curl -fsSL https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | sudo gpg --dearmor -o /usr/share/keyrings/mysql.gpg