---
title: 运行MySQL
description: "本文档中有三种安装方式，安装后的目录结构有区别，在后续的所有步骤中，特别要注意相关目录是否正确，以及使用相应场景的命令。具体如下。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/MySQL/kunpengmysql8017_03_0013_0.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/MySQL/kunpengmysql8017_03_0013_0.html
indexId: 06ac060e7f8b96bc77660926a6ddf38565f7b6657043114c627a72bb5f96846f75
---
# 运行MySQL

本文档中有三种安装方式，安装后的目录结构有区别，在后续的所有步骤中，特别要注意相关目录是否正确，以及使用相应场景的命令。具体如下。

- 通过官网RPM包方式安装，软件安装目录默认为“/usr”。
- 通过镜像站RPM包方式安装或通过源码编译方式安装，软件安装目录默认为“/usr/local/mysql”。
- 容器场景无法识别ll命令，请使用ls -l命令。
- 请使用root用户执行步骤  1
到步骤  5
，在步骤  5
切换为mysql用户后，使用mysql用户继续执行后续的操作步骤。


1. 修改配置文件。

  a. 编辑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 容器场景还需执行chown -R mysql:mysql /data。 user=mysql是指操作系统层的用户，即创建用户组和用户中创建的用户。

  b. 查看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

  c. 修改配置文件“/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. 配置环境变量。

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

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

  b. 使环境变量配置生效。
    1 source /etc/profile

  c. 查看环境变量。
    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

  初始化回显root@localhost:后面有生成临时初始密码，步骤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. 启动数据库。

  a. 启动数据库进程。
如果以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 &

  b. 查看数据库进程。
    1 ps -ef | grep mysql

  c. 查看数据库监测端口。
    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数据库中配置数据库账号密码。
文档中的用户名和密码仅供参考，请根据用户自身的实际情况进行配置。


  a. 修改通过root用户登录数据库的密码。
    1 alter user 'root'@'localhost' identified by "123456";

  b. 创建全域root用户，允许root用户通过密码123456从任何主机连接到MySQL服务器。
    1 create user 'root'@'%' identified by '123456';

  c. 授权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
