在 Ubuntu 上安装 MySQL 的详细指南

06-01 1445阅读

在Ubuntu环境中安装 mysql-server 以及 MySQL 开发包(包括头文件和动态库文件),并处理最新版本MySQL初始自动生成的用户名和密码,可以通过官方的APT包管理器轻松完成。以下是详细的步骤指南,包括从官方仓库和MySQL官方仓库安装的两种方法,并介绍如何处理自动生成的初始用户名和密码,以及如何修改root初始密码。

方法一:使用Ubuntu官方仓库安装

步骤一:更新系统包列表

首先,确保您的系统包列表是最新的:

sudo apt update
sudo apt upgrade -y

步骤二:安装 MySQL Server

使用APT安装MySQL服务器:

sudo apt install -y mysql-server

说明:

  • 该命令将安装最新版本的MySQL服务器以及相关依赖项。

    步骤三:安装 MySQL 开发包

    安装包含头文件和动态库文件的开发包:

    sudo apt install -y libmysqlclient-dev
    

    说明:

    • libmysqlclient-dev 包含用于开发的MySQL头文件和动态库文件。

      步骤四:启动并配置 MySQL 服务

      1. 启动MySQL服务

        sudo systemctl start mysql
        
      2. 设置MySQL开机自启动

        sudo systemctl enable mysql
        
      3. 检查MySQL服务状态

        sudo systemctl status mysql
        

        您应该看到类似如下的输出,表示MySQL正在运行:

        ● mysql.service - MySQL Community Server
           Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
           Active: active (running) since ...
        

      步骤五:处理初始自动生成的用户名和密码

      在最新版本的MySQL安装过程中,系统会自动为root用户生成一个临时密码。您需要找到该临时密码并进行更改。

      1. 查找临时密码

      安装完成后,MySQL会将临时密码记录在日志文件中。使用以下命令查看日志并获取临时密码:

      sudo grep 'temporary password' /var/log/mysql/error.log
      

      您将看到类似如下的输出:

      [Date Time] [Note] A temporary password is generated for root@localhost: xXxXxXxXxXx
      

      记下该临时密码(例如 xXxXxXxXxXx)。

      2. 运行安全性脚本

      为了提高MySQL的安全性,并修改初始密码,建议运行官方提供的安全性脚本:

      在 Ubuntu 上安装 MySQL 的详细指南
      (图片来源网络,侵删)
      sudo mysql_secure_installation
      

      您将被提示执行以下操作:

      1. 输入当前root密码:使用上一步骤中获取的临时密码。
      2. 设置新root密码:根据提示设置一个强密码。
      3. 移除匿名用户:建议移除。
      4. 禁止远程root登录:建议禁止以提高安全性。
      5. 移除测试数据库:建议移除。
      6. 重新加载权限表:选择是以应用更改。

      示例交互:

      在 Ubuntu 上安装 MySQL 的详细指南
      (图片来源网络,侵删)
      Enter password for user root: 
      You must change the password now (y/N)? Y
      New password: 
      Re-enter new password: 
      Password updated successfully!
      Remove anonymous users? (Y/n) Y
      Disallow root login remotely? (Y/n) Y
      Remove test database and access to it? (Y/n) Y
      Reload privilege tables now? (Y/n) Y
      

      步骤六:修改root初始密码(手动方法)

      如果您需要手动修改root密码,可以按照以下步骤操作:

      1. 登录MySQL

      使用当前root密码登录MySQL:

      在 Ubuntu 上安装 MySQL 的详细指南
      (图片来源网络,侵删)
      sudo mysql -u root -p
      
      2. 修改root密码

      在MySQL命令行中执行以下命令以修改root用户的密码:

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
      FLUSH PRIVILEGES;
      

      说明:

      • 将 YourNewStrongPassword! 替换为您希望设置的新密码。
        3. 验证密码修改

        退出MySQL并重新登录以验证新密码是否生效:

        exit
        sudo mysql -u root -p
        

        输入新密码后,您应能成功登录。

        4. 忘记root密码时的重置方法

        如果您忘记了root密码,可以通过以下步骤重置:

        1. 停止MySQL服务

          sudo systemctl stop mysql
          
        2. 以安全模式启动MySQL

          sudo mysqld_safe --skip-grant-tables &
          
        3. 登录MySQL

          sudo mysql -u root
          
        4. 修改root密码

          在MySQL命令行中执行:

          FLUSH PRIVILEGES;
          ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
          FLUSH PRIVILEGES;
          EXIT;
          
        5. 停止安全模式下的MySQL

          首先找到MySQL进程ID:

          sudo killall mysqld
          
        6. 重新启动MySQL服务

          sudo systemctl start mysql
          
        7. 使用新密码登录

          sudo mysql -u root -p
          

        步骤七:验证安装

        1. 登录MySQL

          sudo mysql -u root -p
          

          输入您在 mysql_secure_installation 或手动修改时设置的新密码后,您将进入MySQL命令行界面。

        2. 检查MySQL版本

          在MySQL命令行中运行:

          SELECT VERSION();
          

          您将看到MySQL的版本信息。

        步骤八:配置防火墙(可选)

        如果您需要通过网络访问MySQL,确保防火墙允许3306端口的流量。

        1. 如果使用UFW防火墙

          sudo ufw allow 'MySQL'
          

          或者更具体地:

          sudo ufw allow 3306/tcp
          
        2. 重新加载防火墙规则

          sudo ufw reload
          

        注意: 为了安全起见,建议仅允许受信任的IP地址访问MySQL服务。

        方法二:使用MySQL官方仓库安装最新版本

        如果您需要安装MySQL的最新版本,可以使用MySQL官方提供的APT仓库。

        步骤一:下载并添加MySQL APT仓库

        1. 下载MySQL APT仓库配置包

          wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
          

          注意: 请访问 MySQL APT Repository 页面,确保下载最新版本的 mysql-apt-config 包。

        2. 安装MySQL APT仓库配置包

          sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb
          

          在安装过程中,您将看到一个配置界面,选择您需要的MySQL版本(如8.0),然后确认。

        3. 更新系统包列表

          sudo apt update
          

        步骤二:安装 MySQL Server

        sudo apt install -y mysql-server
        

        步骤三:安装 MySQL 开发包

        sudo apt install -y libmysqlclient-dev
        

        步骤四至步骤七

        按照方法一中的 步骤四 到 步骤八 完成MySQL服务的启动、配置、安全性设置和验证。

        附加步骤:配置MySQL远程访问(可选)

        如果需要从远程主机访问MySQL服务器,需进行以下配置:

        步骤一:修改MySQL配置文件

        1. 编辑MySQL配置文件

          sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
          
        2. 找到 bind-address 行并修改

          将:

          bind-address = 127.0.0.1
          

          修改为:

          bind-address = 0.0.0.0
          

          说明: 这将允许MySQL监听所有IP地址。

        3. 保存并关闭文件(按 Ctrl + O 保存,按 Ctrl + X 退出)

        步骤二:重启MySQL服务

        sudo systemctl restart mysql
        

        步骤三:创建远程访问用户

        1. 登录MySQL

          sudo mysql -u root -p
          
        2. 创建新用户并授予权限

          CREATE USER 'username'@'%' IDENTIFIED BY 'password';
          GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
          FLUSH PRIVILEGES;
          

          注意: 替换 username 和 password 为您的实际用户名和密码。

        步骤四:配置防火墙

        确保防火墙允许来自远程主机的连接:

        sudo ufw allow 3306/tcp
        sudo ufw reload
        

        注意: 为了安全起见,建议限制允许访问MySQL的IP地址。例如,只允许特定IP访问:

        sudo ufw allow from  to any port 3306
        

        将 替换为允许访问的IP地址。

        常见问题排查

        1. 无法启动MySQL服务

        解决方案:

        • 查看错误日志:

          sudo journalctl -u mysql
          
        • 检查配置文件是否有语法错误。

        • 确保没有端口冲突(如其他服务占用了3306端口)。

          2. 无法连接到MySQL服务器

          解决方案:

          • 确保MySQL服务正在运行:

            sudo systemctl status mysql
            
          • 检查防火墙设置是否允许连接。

          • 确认MySQL用户有足够的权限,并且密码正确。

          • 如果是远程连接,确保MySQL配置文件中的 bind-address 设置正确,并且用户权限允许从远程主机连接。

            3. 安装 libmysqlclient-dev 后仍提示找不到头文件

            解决方案:

            • 确认开发包安装成功:

              dpkg -l | grep libmysqlclient-dev
              
            • 检查头文件路径是否正确,例如 /usr/include/mysql/。

            • 在编译时,确保编译器能够找到头文件和库文件,可能需要在编译命令中添加 -I/usr/include/mysql 和 -L/usr/lib/mysql 等选项。

              4. 忘记root密码

              解决方案:

              参考步骤六中的 忘记root密码时的重置方法,通过停止MySQL服务、以安全模式启动、修改密码、重启服务等步骤来重置root密码。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码