centos7安装 mysql5.7,自定义目录

目录预览

  • shell命令:
shell> yum search libaio
shell> yum install libaio
shell> mkdir /prod/db
shell> cd /prod/db
shell> wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
shell> tar -axvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
shell> mv /prod/db/mysql-5.7.27-linux-glibc2.12-x86_64 mysql
shell> cd mysql
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> ln -s /prod/db/mysql mysql
shell> mysql/bin/mysqld --user=mysql --basedir=/prod/db/mysql --datadir=/prod/db/mysql/data/  --initialize
  • mysql命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
  • my.cnf配置文件
[client]
port = 3306
socket = /prod/db/mysql/mysql.sock

[mysqld]
port = 3306
basedir=/prod/db/mysql
datadir=/prod/db/mysql/data
socket=/prod/db/mysql/mysql.sock
pid-file=/prod/db/mysql/mysql.pid
explicit_defaults_for_timestamp
log_error=/prod/db/mysql/log/mysql-error.log
slow_query_log_file =/prod/db/mysql/log/mysql-slow.log

一、安装依赖

shll> yum search libaio
shll> yum install libaio

二、创建用户和组

  • 创建mysql用户组
shell> groupadd mysql
  • 创建mysql用户
shell> useradd -r -g mysql -s /bin/false mysql

-s /bin/false 是禁止用户登录centos系统

三、安装

  • 安装包下载
shell> wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  • 解压
 shell> tar -axvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  • 重命名
shell> mv /prod/db/mysql-5.7.27-linux-glibc2.12-x86_64 mysql
  • 创建软连接
shell> ln -s /prod/db/mysql mysql
  • 初始化mysql环境:
mysql/bin/mysqld --user=mysql --basedir=/prod/db/mysql --datadir=/prod/db/mysql/data/  --initialize

mysql软连接指向/prod/db/mysql

四、配置

  • 使用临时密码登录

    shell> mysql -uroot  -p   ‘初始密码’
    
  • 修改密码

sql> set password=password('yourpassword');
  • 设置远程登录
sql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
  • 重载授权
sql> FLUSH PRIVILEGES;

五、启动与关闭

  • 添加环境变量

    shell> vi /etc/profile
    

    在文件最后添加如下语句:

    export MYSQL_HOME=/prod/db/mysql
    export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib
    

    保存后,使环境变量生效:

    shell> source /etc/profile
    
  • 启动mysql

    shell> mysqld_safe --defaults-file=/prod/db/mysql/my.cnf &
    

    或者

    shell> systemctl start mysql
    

    可以通过ps -ef | grep mysql看到相关进程

    systemctl stop|start|restart mysql 对应停止|启动|重启

六、修改密码

  • 登录

    shell> mysql -uroot  -p   ‘初始密码’
    
  • 修改密码

    sql> set password='新密码';
    
  • 刷新更改

    sql> FLUSH PRIVILEGES;
    

七、问题

  1. 问题一

    shell> mysqld --initialize的时候出现了--initialize specified but the data directory has files in it. Aborting. 错误
    

    解决方法:

    a、检查my.cnf文件中datadir配置路径下,是否有data文件夹
    b、检查data文件夹下是否为空,不为空则清空文件夹
    
  2. 问题二:

    使用mysql -uroot -p密码,连接数据库,出现

    shell> ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/prod/db/mysql/run/mysql.sock' (2)
    

    解决方法:

    shell> service mysql restart
    
  3. 问题三

    安装完成后无法获取初始密码。

    解决方法:

    1. 在配置文件/prod/db/mysql/my.cnf中 [mysqld] 这一项下添加skip-grant-tables 这个配置,然后保存。
    2. 密登录:输入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键。
    3. 重置密码:
    
    1. 配置 my.cnf文件

      shell> vi mysql/my.cnf
      
      [mysqld]
      skip-grant-tables
      
    2. 密登录

      shell> mysql -u root -p
      
      sql> use mysql;
      sql> update user set authentication_string=password('新密码') where 
      sql> user='root' and host='%';
      sql> flush privileges;
      

      说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.删除掉my.cnf中的免密设置,重启mysql即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值