麒麟系统安装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
  • 在弹出的配置界面中:

    1. 选择 MySQL Server & Cluster -> mysql-8.0

    2. 选择 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 直接登录
  • 按提示操作:

    1. 设置 root 密码。

    2. 移除匿名用户(输入 Y)。

    3. 禁止远程 root 登录(输入 Y)。

    4. 删除测试数据库(输入 Y)。

    5. 重新加载权限表(输入 Y)。

  • 操作完成后如果发现没有设置密码

  • 1. 检查 MySQL 是否已启动

    确保 MySQL 服务已正常运行:

    sudo systemctl status mysql
  • 如果状态为 active (running),说明服务已启动。

  • 如果未启动,尝试手动启动:

    sudo systemctl start mysql
  • 输出示例:

    2023-10-01T12:34:56.789012Z 6 [Note] [MY-010454] [Server] 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
# 输出示例:mysql  Ver 8.0.41 for Linux on x86_64 (MySQL Community Server - GPL)

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

关键注意事项

  1. 版本兼容性

    • 若麒麟系统基于 Ubuntu 20.04,需将安装命令中的 ubuntu22.04 替换为 ubuntu20.04

    • 若仓库中无 8.0.41 版本,可安装最新 8.0.x 版本(如 8.0.42),功能完全兼容。

  2. 依赖冲突处理
    如果之前安装过 MySQL 或 MariaDB,需先彻底卸载:

    sudo apt purge mysql-server* mariadb-server*
    sudo rm -rf /etc/mysql /var/lib/mysql
    sudo apt autoremove
  3. 配置文件路径

    • 主配置文件:/etc/mysql/my.cnf

    • 数据目录:/var/lib/mysql

  4. 防火墙设置(可选)
    如需远程访问,开放 3306 端口:

    sudo ufw allow 3306/tcp

常见问题解决

  1. 安装时提示依赖错误
    运行以下命令修复依赖:

    sudo apt install -f
  2. 安装界面未弹出版本选择
    手动编辑仓库配置文件:

    sudo nano /etc/apt/sources.list.d/mysql.list

    确保包含以下内容:

    deb http://repo.mysql.com/apt/ubuntu/ focal mysql-8.0  # 替换 focal 为系统代号(如 jammy)
  3. 忘记 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 配置文件
  1. 打开 MySQL 配置文件:

    bash

    复制

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    • 如果文件路径不同,请根据实际路径调整。

  2. 找到 bind-address 配置项,将其修改为:

    ini

    复制

    bind-address = 0.0.0.0
    • 0.0.0.0 表示允许所有 IP 地址连接。

  3. 保存并退出(Ctrl + O 保存,Ctrl + X 退出)。

步骤2:重启 MySQL 服务

bash

复制

sudo systemctl restart mysql

2. 检查防火墙设置

如果防火墙未开放 MySQL 的端口(默认 3306),局域网内的其他电脑将无法连接。

步骤1:开放 3306 端口
  1. 如果使用 ufw 防火墙:

    bash

    复制

    sudo ufw allow 3306/tcp
    sudo ufw reload
  2. 如果使用 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:授权远程访问
  1. 查看当前用户权限:

    sql

    复制

    SELECT user, host FROM mysql.user;
    • 如果 root 用户的 host 仅为 localhost,则需要修改。

  2. 授权 root 用户从任意 IP 访问:

    sql

    复制

    CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    • 将 你的密码 替换为实际密码。

  3. 如果已有 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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dov_c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值