Ubuntu 上安装 MySQL 8.0.22
在 Ubuntu 上安装 MySQL 8.0.22,可以通过以下步骤完成:
步骤 1:更新系统软件包
sudo apt update
sudo apt upgrade -y
步骤 2:下载 MySQL 官方 APT 仓库包
前往 MySQL 官方下载页面获取 APT 仓库配置包的链接:MySQL APT Repository
使用以下命令下载:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
步骤 3:添加 MySQL APT 仓库
安装下载的 .deb
文件:
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
在安装过程中,系统会显示一个界面供你选择 MySQL 版本。确保选中 MySQL 8.0,并确认。
如果错过了此配置,可通过以下命令重新配置:
sudo dpkg-reconfigure mysql-apt-config
步骤 4:更新软件包索引
运行以下命令更新仓库:
sudo apt update
步骤 5:安装 MySQL Server
sudo apt install mysql-server -y
安装过程中,系统会提示设置 MySQL 根用户的密码,按照提示输入并记住密码。
步骤 6:验证 MySQL 安装
启动 MySQL 服务:
sudo systemctl start mysql
sudo systemctl enable mysql
检查 MySQL 服务状态:
sudo systemctl status mysql
登录 MySQL:
mysql -u root -p
输入刚才设置的密码即可登录。
步骤 7:检查 MySQL 版本
登录后运行以下命令确认版本:
SELECT VERSION();
应该显示类似 8.0.22
的输出。
可选步骤:配置安全性
为确保 MySQL 安装安全,可以运行以下命令:
sudo mysql_secure_installation
按照提示完成配置,包括删除匿名用户、禁用远程 root 登录、移除测试数据库等。
完成后,你的 Ubuntu 系统应该已经成功安装了 MySQL 8.0.22。
如果在安装 MySQL 时没有提示设置 root
用户的密码,这可能是因为 MySQL 在较新的版本中默认使用 auth_socket
插件进行身份验证,而不是传统的用户名和密码。
解决方法:设置或修改 root 用户密码
-
登录 MySQL:
使用sudo
直接登录:sudo mysql
-
切换到
mysql
数据库:USE mysql;
-
修改 root 用户的身份验证插件并设置密码:
如果希望改用密码进行身份验证,运行以下命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'p~4Ps:=_@HcJHC'; FLUSH PRIVILEGES;
注意:将
你的新密码
替换为你想设置的新密码。 -
退出 MySQL:
EXIT;
-
验证新密码:
退出后,尝试使用新密码登录:mysql -u root -p
输入刚才设置的密码即可。
如果需要保留 auth_socket
插件
如果你希望继续使用 auth_socket
插件而不设置密码,只需通过以下命令确认 root
用户使用的身份验证方式:
SELECT user, host, plugin FROM mysql.user;
结果中,如果看到 root@localhost
的插件是 auth_socket
,可以通过在系统中切换到 root
用户来直接访问 MySQL:
sudo mysql
重启服务(可选)
完成修改后,可以重启 MySQL 服务以确保更改生效:
sudo systemctl restart mysql
这样可以确保 MySQL 按你的需求正确配置身份验证方式。
CREATE USER ‘bet’@‘%’ IDENTIFIED BY ‘gbankclub’;
CREATE USER ‘casino’@‘%’ IDENTIFIED BY ‘dMlrZs9uVdIAXBsV’;
GRANT ALL PRIVILEGES ON . TO ‘bet’@‘%’;
GRANT ALL PRIVILEGES ON . TO ‘casino’@‘%’;
FLUSH PRIVILEGES;
- 检查 MySQL 配置
MySQL 默认可能只允许本地连接,需要修改配置以支持远程连接。
修改 mysqld.cnf
找到并编辑 MySQL 的配置文件(通常在 /etc/mysql/mysql.conf.d/mysqld.cnf):
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
确保以下设置:
[mysqld]
bind-address = 0.0.0.0
解释:
bind-address=0.0.0.0 允许 MySQL 监听所有网络接口。
如果设置为 127.0.0.1,MySQL 只会接受本地连接。
保存文件后,重启 MySQL 服务:
sql_mode=“STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION”
sudo systemctl restart mysql