安装通用二进制MySql5.7
1.解压至/usr/local/并创建软连接
│[root@blotus ~]#tar xf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
│[root@blotus ~]#cd /usr/local/
│[root@blotuslocal]# ln -sv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
2.创建mysql用户mysql组
│[root@blotusmysql]# groupadd -r -g 306 mysql
│[root@blotusmysql]# useradd -g 306 -r -u 306 mysql
│修改mysql目录下的所有文件的属组属主
│[root@blotusmysql]# chown mysql.mysql /usr/local/mysql/*
3.为数据库数据创建目录并修改目录权限,mysql用户必须对data数据目录有写权限
│[root@blotusmysql]# mkdir /mydata/data -p
│[root@blotusmysql]# chown -R mysql.mysql /mydata/data/
│[root@blotusmysql]# chmod 750 /mydata/data
4.编辑/etc/my.cnf配置文件
│[root@blotusmysql]# vim /etc/my.cnf
│[mysqld]
│datadir=/mydata/data
│socket=/var/lib/mysql/mysql.sock
│explicit_defaults_for_timestamp=true
│#设置默认timestamp为deprecated
│symbolic-links=0
│
│[mysqld_safe]
│#指定错误日志位置,创建相关目录和文件,还有对应的mysql权限
│log-error=/var/log/mysql/mysql.log
│pid-file=/var/run/mysql/mysql.pid
│#增加以下两行
│
│[mysql]
│socket=/var/lib/mysql/mysql.sock
│
│!includedir/etc/my.cnf.d
***如果配置文件如下,这可跳过第五步,因为不需要创建和修改文件相关权限
│[root@blotusmysql]# vim /etc/my.cnf
│
│[client]
│port = 3306
│socket =/tmp/mysql.sock
│[mysqld]
│port = 3306
│socket = /tmp/mysql.sock
│datadir = /mydata/data
│explicit_defaults_for_timestamp=true
│[mysql]
│no-auto-rehash
5.创建相关目录和文件并修改属组属主
│[root@blotus ~]#mkdir -p /var/log/mysql
│[root@blotus ~]#mkdir -p /var/lib/mysql/
│[root@blotus ~]#chown -R mysql.mysql /var/log/mysql
│[root@blotus ~]#chown -R mysql.mysql /var/lib/mysql/
│[root@blotus ~]#touch /var/log/mysql/mysql.log
│[root@blotus ~]# chownmysql.mysql /var/log/mysql/mysql.log
6.初始化mysql
│[root@blotus ~]#cd /usr/local/mysql/bin/
│[root@blotus bin]./mysqld--initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data
│
│生成出一个data目录,代表数据库已经初始化成功
并且mysql的root用户生成一个临时密码:!b+tzmfP#7Bf (最好先记录这个临时密码)
7.将mysql目录下的所有文件的属主改为root
│[root@blotusmysql]# chown -R root /usr/local/mysql/*
8.将mysqld服务加入开机启动
│[root@blotusmysql]# cp support-files/mysql.server /etc/init.d/mysqld
│[root@blotusmysql]# chkconfig --add mysqld
│[root@blotusmysql]# chkconfig mysqld on
│[root@blotusmysql]# systemctl status mysqld
9.将mysql相关命令、帮助文档、库文件添加到的环境变量中
│[root@blotusprofile.d]# echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile.d/mysqld.sh
│[root@blotusprofile.d]# echo "MANPATH=/usr/local/mysql/man" >> /etc/man.config
│[root@blotusprofile.d]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf
│[root@blotusprofile.d]#ldconfig –v
10.启动MySql并初始化
│[root@blotusmysql]# systemctl start mysqld
│[root@blotusmysql]# systemctl status mysqld
│[root@blotusmysql]# mysql_secure_installation
11.登陆mysql
│[root@blotusmysql]# mysql –uroot –p –h192.168.18.236
│MySQL [(none)]>show global variables like ‘datadir’;
│MySQL [(none)]>show global status;
12.修改密码,如果忘记密码
│在/etc/my.cnf文件中增加一行
│
│[mysqld]
│datadir=/mydata/data
│socket=/var/lib/mysql/mysql.sock
│skip-grant-tables
│symbolic-links=0
│
│[mysqld_safe]
│log-error=/var/log/mysql/mysql.log
│pid-file=/var/run/mysql/mysql.pid
│socket=/var/lib/mysql/mysql.sock
│
│[root@blotus bin]# mysql
│mysql> use mysql
│mysql> update mysql.user setauthentication_string=password('hasayake') where user='root';
│mysql> flush privileges;
│
│修改密码后注释掉/etc/my.cnf中skip-grant-tables这行,重启
│**Mysql5.7版本mysql数据库下user表已经没有password这个字段了,password字段改成了
│authentication_string