鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

运行

本文档中有三种安装方式,安装后的目录结构有区别,在后续的所有步骤中,特别要注意相关目录是否正确。具体如下。

  • 通过官网RPM包方式安装,软件安装目录默认为“/usr”
  • 通过镜像站RPM包方式安装或通过源码编译方式安装,软件安装目录默认为“/usr/local/mysql”
  1. 修改配置文件。
    1. 编辑my.cnf文件。
      1
      2
      rm -f /etc/my.cnf
      echo -e "[mysqld_safe]\nlog-error=/data/mysql/log/mysql.log\npid-file=/data/mysql/run/mysqld.pid\n[mysqldump]\nquick\n[mysql]\nno-auto-rehash\n[client]\ndefault-character-set=utf8\n[mysqld]\nbasedir=/usr/local/mysql\nsocket=/data/mysql/run/mysql.sock\ntmpdir=/data/mysql/tmp\ndatadir=/data/mysql/data\ndefault_authentication_plugin=mysql_native_password\nport=3306\nuser=mysql\n" > /etc/my.cnf
      
      • 在执行这段代码之前,请根据实际情况修改以下参数:

        basedir:MySQL软件安装路径

        datadir:MySQL数据存储路径

        tmpdir:MySQL临时文件存储路径

        log-error:MySQL错误日志文件路径

        pid-file:MySQL进程ID文件路径

        socket:MySQL通信socket文件路径

        在本配置中,可执行以下命令确保相关目录已存在,否则可能导致MySQL启动失败。

        1
        2
        3
        4
        mkdir -p /data/mysql/log
        mkdir -p /data/mysql/run
        mkdir -p /data/mysql/tmp
        mkdir -p /data/mysql/data
        
    2. 查看MySQL数据库服务器的配置文件my.cnf,确保配置文件修改正确。
      1
      cat /etc/my.cnf
      

      预期结果:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      [mysqld_safe]
      log-error=/data/mysql/log/mysql.log
      pid-file=/data/mysql/run/mysqld.pid
      [mysqldump]
      quick
      [mysql]
      no-auto-rehash
      [client]
      default-character-set=utf8
      [mysqld]
      basedir=/usr/local/mysql
      socket=/data/mysql/run/mysql.sock
      tmpdir=/data/mysql/tmp
      datadir=/data/mysql/data
      default_authentication_plugin=mysql_native_password
      port=3306
      user=mysql
      
    3. 修改配置文件“/etc/my.cnf”的用户组和用户权限为mysql:mysql。
      1
      2
      chown mysql:mysql /etc/my.cnf
      ll /etc/my.cnf
      

      预期结果如下,表示操作成功。

      1
      -rw-r--r-- 1 mysql mysql 353 Sep 14 14:33 /etc/my.cnf
      
  2. 将MySQL加入service服务。
    1
    2
    3
    chmod 777 /usr/local/mysql/support-files/mysql.server
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    chkconfig mysql on
    

    修改“/etc/init.d/mysql”的用户组和用户权限为mysql:mysql。

    1
    2
    chown -R mysql:mysql /etc/init.d/mysql
    ll /etc/init.d/mysql
    

  3. 配置环境变量。
    1. 安装完成后,将MySQL二进制文件的路径添加到环境变量中。
      1
      echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile
      

      其中PATH中的“/usr/local/mysql/bin”路径,为MySQL软件安装目录下的bin文件的绝对路径,请根据实际情况修改。

    2. 使环境变量配置生效。
      1
      source /etc/profile
      
    3. 查看环境变量。
      1
      env
      

      预期结果:

  4. 修改数据目录权限。
    1
    chmod 755 /data/mysql/data/
    
  5. 切换到mysql用户。
    1
    2
    su - mysql
    whoami
    
  6. 初始化数据库。
    1
    mysqld --defaults-file=/etc/my.cnf --initialize
    

    或者

    1
    /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize
    

    初始化回显倒数第2行中有数据库的初始密码,步骤8时将会用到,请妥善保存。

    初始化完成后,查看数据目录下数据文件“/data/mysql/data”的用户组和用户权限为mysql:mysql(前面/etc/my.cnf文件中配置的操作系统用户是user=mysql)。

    1
    ll /data/mysql/data
    

    预期结果:

    • 如果采用官网RPM安装方式安装,则mysqld文件在“/usr/sbin”目录下。请根据实际情况修改初始化数据库命令。
    • 如果初始化数据库失败,提示“--initialize specified but the data directory has files in it.”,则执行下面命令删除数据后重新初始化。
      1
      2
      ls /data/mysql/data
      rm -rf /data/mysql/data/
      
  7. 启动数据库。
    1. 启动数据库进程。

      如果以root用户(su - root)第一次启动数据库服务(service mysql start),则启动时会提示缺少mysql.log文件而导致启动数据库失败。切换到mysql用户(su - mysql)启动数据库服务后,会在/data/mysql/log目录下生成mysql.log文件,停止数据库服务(service mysql stop),再次以root用户启动数据库服务可以解决该问题。

      • 如果采用了官网RPM方式安装,则执行以下命令启动数据库。
        1
        /usr/sbin/mysqld --defaults-file=/etc/my.cnf &
        

        执行命令后,回车,进行下一步骤。

      • 如果采用了镜像站RPM方式安装或编译安装,执行一下三种命令中的其中一种即可。
        1
        service mysql start
        
        或者
        1
        mysqld --defaults-file=/etc/my.cnf &
        
        或者
        1
        /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
        
    2. 查看数据库进程。
      1
      ps -ef | grep mysql
      
    3. 查看数据库监测端口。
      1
      2
      3
      netstat -anpt
      netstat -anpt | grep mysql
      netstat -anpt | grep 3306
      

      如果netstat命令执行失败,则需要安装依赖包。

      1
      yum -y install net-tools
      
  8. 在SSH终端登录数据库。
    • 提示输入密码时,请输入6产生的初始密码。
    • 如果采用官网RPM安装方式,则mysql文件在“/usr/bin”目录下。输入登录数据库的命令时,请根据实际情况修改mysql文件路径。
    1
    mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    或者

    1
    /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    预期结果:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    [mysql@localhost ~]$ /usr/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 8
    Server version: 8.0.17
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    
  9. 在MySQL数据库中配置数据库账号密码。

    文档中的用户名和密码仅供参考,请根据用户自身的实际情况进行配置。

    1. 修改通过root用户登录数据库的密码。
      1
      alter user 'root'@'localhost' identified by "123456";
      
    2. 创建全域root用户,允许root用户通过密码123456从任何主机连接到MySQL服务器。
      1
      create user 'root'@'%' identified by '123456';
      
    3. 授权root用户拥有数据库中的所有权限,并刷新MySQL的权限表,使授权生效。
      1
      2
      grant all privileges on *.* to 'root'@'%';
      flush privileges;
      
  10. 退出数据库。
    1
    \q
    
    或者
    1
    exit
    
  11. 在SSH终端使用修改后的密码重新登录数据库。
    1
    mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    或者

    1
    /usr/local/mysql/bin/mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    退出数据库。

    \q
    或者
    exit
  12. 可选:在SSH终端关闭数据库。
    1
    service mysql stop
    

    或者

    1
    mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock
    

    或者

    1
    /usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock
    
  13. (可选)在SSH终端查看数据库进程。
    1
    ps -ef | grep mysql