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

运行MySQL

安装MySQL完成后,需要通过以下使用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、数据路径datadir等)根据实际情况修改。user=mysql是指操作系统层的用户,即创建用户组和用户中创建的用户。如需进行性能调测,请参考数据库参数调优,修改my.cnf中的配置参数。

    2. 确保my.cnf配置文件修改正确。
      1
      cat /etc/my.cnf
      

    3. 修改配置文件“/etc/my.cnf”的用户组和用户权限为mysql:mysql。
      1
      2
      chown mysql:mysql /etc/my.cnf
      ll /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
    

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

    1
    ll /data/mysql/data
    

    • 初始化回显倒数第2行中有初始密码,请注意保存,步骤8时会用到。
    • 如果采用官网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. 启动数据库(有3种方式)。
    1. 启动数据库进程。

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

      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. 登录数据库。

    提示输入密码时,请输入6产生的初始密码。

    1
    mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    或者

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

  9. 配置数据库账号密码。

    文档中的用户和密码只是参考,根据客户实际情况进行配置。

    1. 登录数据库以后,修改通过root用户登录数据库的密码。
      1
      alter user 'root'@'localhost' identified by "123456";
      
    2. 创建全域root用户(允许root从其他服务器访问)。
      1
      create user 'root'@'%' identified by '123456';
      
    3. 进行授权。
      1
      2
      grant all privileges on *.* to 'root'@'%';
      flush privileges;
      

  10. 退出数据库。

    执行\q或者exit退出数据库。

    1
    exit
    
  11. 用修改后的密码重新登录数据库。
    1
    mysql -uroot -p -S /data/mysql/run/mysql.sock
    

    或者

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

    退出数据库。

    exit
  12. 可选:关闭数据库。
    1
    service mysql stop
    

    重启数据库,可执行以下命令:"service mysql restart"。

    或者

    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
    

    查看数据库进程。

    1
    ps -ef | grep mysql