饭宝 发表于 3 天前

麒麟体系安装Mysql

步骤1:添加 MySQL 官方 APT 仓库

直接在终端执行以下命令,体系会自动设置仓库并选择版本:
# 下载 MySQL APT 仓库配置工具
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb

# 安装配置工具(会弹出图形界面选择版本)
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

[*] 在弹出的设置界面中:

[*] 选择 MySQL Server & Cluster -> mysql-8.0。
[*] 选择 OK 确认。

步骤2:更新仓库并安装 MySQL 8.0.41


# 更新软件源
sudo apt update

若缺少秘钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C

# 更新软件源 sudo apt update
#安装
sudo apt install mysql-server 步骤3:启动服务并初始化


# 启动 MySQL
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 运行安全配置向导
sudo mysql_secure_installation
2. 查找临时暗码

MySQL 8.0 在首次安装时会天生一个临时暗码,通常记录在日志文件中。执行以下命令查找:
sudo grep 'temporary password' /var/log/mysql/error.log
3. 使用临时暗码登录 MySQL

使用临时暗码登录 MySQL:
mysql -u root -p
4. 修改 root 暗码

在 MySQL 命令行中执行以下命令修改暗码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
5. 重新运行安全设置向导

修改暗码后,重新运行安全设置向导:
sudo mysql_secure_installation
sudo mysql
6. 假如未找到临时暗码

假如未找到临时暗码,可能是 MySQL 使用了 auth_socket 插件,允许体系用户无需暗码直接登录。可以通过以下方式办理:
使用 sudo 直接登录



[*] 按提示操纵:

[*] 设置 root 暗码。
[*] 移除匿名用户(输入 Y)。
[*] 禁止长途 root 登录(输入 Y)。
[*] 删除测试数据库(输入 Y)。
[*] 重新加载权限表(输入 Y)。

[*] 操纵完成后假如发现没有设置暗码
[*] 1. 查抄 MySQL 是否已启动

确保 MySQL 服务已正常运行:
sudo systemctl status mysql
[*] 假如状态为 active (running),阐明服务已启动。
[*] 假如未启动,尝试手动启动:
sudo systemctl start mysql
[*] 输出示例:
2023-10-01T12:34:56.789012Z 6 A temporary password is generated for root@localhost: abcdef123456
[*] 记下临时暗码(如 abcdef123456)。
[*] 输入临时暗码后进入 MySQL 命令行。
[*] 将 你的新暗码 替换为强暗码(如 MyNewPassword123!)。
[*] 输入新暗码。
[*] 按提示完成安全设置(如删除匿名用户、禁止长途 root 登录等)。
[*] 进入 MySQL 命令行后,执行以下命令修改暗码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
sudo mysql



[*] 进入 MySQL 命令行后,执行以下命令修改暗码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
[*] 退出 MySQL 命令行后,使用新暗码登录:
mysql -u root -p
[*] 输入新暗码,确认是否可以正常登录。
步骤4:验证安装


# 查看版本
mysql --version
# 输出示例:mysqlVer 8.0.41 for Linux on x86_64 (MySQL Community Server - GPL)

# 登录 MySQL
mysql -u root -p
# 输入密码后进入 MySQL 命令行


[*]
关键留意事项


[*] 版本兼容性

[*] 若麒麟体系基于 Ubuntu 20.04,需将安装命令中的 ubuntu22.04 替换为 ubuntu20.04。
[*] 若仓库中无 8.0.41 版本,可安装最新 8.0.x 版本(如 8.0.42),功能完全兼容。

[*] 依赖冲突处理
假如之前安装过 MySQL 或 MariaDB,需先彻底卸载:

sudo apt purge mysql-server* mariadb-server*
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt autoremove
[*] 设置文件路径

[*] 主设置文件:/etc/mysql/my.cnf
[*] 数据目录:/var/lib/mysql

[*] 防火墙设置(可选)
如需长途访问,开放 3306 端口:

sudo ufw allow 3306/tcp
常见问题办理


[*] 安装时提示依赖错误
运行以下命令修复依赖:

sudo apt install -f
[*] 安装界面未弹出书籍选择
手动编辑仓库设置文件:

sudo nano /etc/apt/sources.list.d/mysql.list 确保包罗以下内容:

deb http://repo.mysql.com/apt/ubuntu/ focal mysql-8.0# 替换 focal 为系统代号(如 jammy)
[*] 忘记 root 暗码
重置暗码步骤:

sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root
# 在 MySQL 命令行执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
exit
sudo systemctl start mysql

假如 MySQL 只能在本地毗连,而局域网内的其他电脑无法毗连,通常是因为 MySQL 的设置限制了长途访问。以下是办理方法的详细步骤:
1. 查抄 MySQL 绑定地点

MySQL 默认只绑定到 127.0.0.1(即本地回环地点),必要修改为 0.0.0.0 以允许长途毗连。
步骤1:编辑 MySQL 设置文件


[*] 打开 MySQL 设置文件:
bash
复制
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

[*] 假如文件路径差别,请根据现实路径调整。

[*] 找到 bind-address 设置项,将其修改为:
ini
复制
bind-address = 0.0.0.0

[*] 0.0.0.0 表示允许全部 IP 地点毗连。

[*] 生存并退出(Ctrl + O 生存,Ctrl + X 退出)。
步骤2:重启 MySQL 服务

bash
复制
sudo systemctl restart mysql 2. 查抄防火墙设置

假如防火墙未开放 MySQL 的端口(默认 3306),局域网内的其他电脑将无法毗连。
步骤1:开放 3306 端口


[*] 假如使用 ufw 防火墙:
bash
复制
sudo ufw allow 3306/tcp
sudo ufw reload
[*] 假如使用 iptables 防火墙:
bash
复制
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
步骤2:查抄防火墙状态

bash
复制
sudo ufw status

[*] 确保 3306/tcp 已允许。
3. 查抄 MySQL 用户权限

MySQL 用户默认只能从 localhost 毗连,必要授权长途访问。
步骤1:登录 MySQL

bash
复制
mysql -u root -p 步骤2:授权长途访问


[*] 查看当前用户权限:
sql
复制
SELECT user, host FROM mysql.user;

[*] 假如 root 用户的 host 仅为 localhost,则必要修改。

[*] 授权 root 用户从任意 IP 访问:
sql
复制
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

[*] 将 你的暗码 替换为现实暗码。

[*] 假如已有 root@% 用户,只需更新权限:
sql
复制
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
步骤3:退出 MySQL

sql
复制
exit; 4. 查抄网络毗连

确保局域网内的其他电脑可以访问 MySQL 服务器的 IP 地点。
步骤1:获取 MySQL 服务器的 IP 地点

在 MySQL 服务器上运行:
bash
复制
ip a

[*] 找到局域网 IP 地点(如 192.168.1.100)。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 麒麟体系安装Mysql