linux mysql5.7 解压版安装步骤和注意事项

cp support-files/mysql.server      /etc/rc.d/init.d/mysql

首先到官网下载tar文件上传到linux 服务器上

解压文件: tar -zxvf  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz ;

复制解压文件到 /usr/local目录下 在mysql 更目录下执行  mv mysql-5.7.26  /usr/local/mysql  作用是复制并重命名

3.新建用户组合用户(我也不知道这步的作用,先记录下来)。在mysql 更目录下执行  groupadd mysql    useradd -r -g mysql mysql 

4.修改mysql根目录用户权限 (我也不知道这步的作用,先记录下来) chown -R mysql .   chgrp -R mysql .  或者 cd mysql chown -R mysql:mysql  ./

5.新建data 目录  mkdir data   新建完后修改权限  cd data   chown -R mysql:mysql  ./

6.初始化 MySQL 配置表 ./bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

这时候直接初始化如果报错 则执行 yum install libaio   中间按 y 回车

检查etc目录下是否有 my.cnf文件,若有则先给它如下配置

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#  skip-grant-tables

# Disabling symbolic-links is recommended to prevent assorted security risks
# symbolic-links=0

[client]
socket=/usr/local/mysql/tmp/mysql.sock

[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/tmp/mysql.sock
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

在mysql的安装根目录新建tmp文件 同时修改其权限  chown -R mysql:mysql  ./

尝试启动mysql  service mysql start(启动)   service mysql stop(停止)  service mysql restart(重启)

若不能正常启动则执行命令(在mysql安装目录执行): 

cp support-files/mysql.server      /etc/rc.d/init.d/mysql

再次启动;

启动后就是连接数据库,整理介绍无密码登录

在/etc/my.cnf加入代码

[mysqld]
  skip-grant-tables

然后重启mysql 连接服务  ./bin/mysql -uroot -p 回车,不输入密码直接回车即可登录

下面才是重点,很多时候到这里就出现很难搞定的问题

首先修改 用户登录密码:

update user set authentication_string = ’password’ where user="root" ;
flush privileges;

退出注释掉

[mysqld]
  #skip-grant-tables
然后重启mysql 服务,再次登录数据库。我这里遇到的问题是
Access denied for user 'root'@'localhost'

解决办法是再次以无密码登录方式登录到数据库执行

mysql> grant all privileges on *.* to root@'%' identified by '密码';
mysql> flush privileges;

 发现无密码条件下,没有授权的写权限

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解决方法:
mysql> set global read_only=0;//(关掉新主库的只读属性)
mysql>flush privileges;

执行上述命令时,我没有遇到这个问题就解决了,这里做个补充

再次退出注释掉 

#skip-grant-tables
然后重启服务登录数据库,我这次是成功的,

然后也是重点;修改远程登录权限
mysql> update user set host = ‘%’ where user = ‘root’; 

这样就可以在远程登录到数据库了,简要记录,后面遇到问题了再补充。

原文地址:https://www.cnblogs.com/yunian139/p/10984504.html