一:到mysql官网下载最新的mysql包 mysql-5.7.21-linux-glibc2.12-x86_64
二:在linux /usr/local/中解压mysql压缩包 改名为mysql
cd /usr/local/
tar -xzvf mysql压缩包名
三:创建用户组mysql,创建用户mysql并将其添加到用户组mysql中,并赋予读写权限
groupadd mysql --创建mysql用户组组
useradd -r -g mysql mysql --创建mysql用户并添加到mysql用户组中
chown -R mysql mysql/ --将mysql目录访问权限赋为myql用户
chgrp -R mysql mysql/ --改变mysql目录的用户组属于mysql组
注:
chmod 命令
用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
chgrp命令
改变文件或目录所属的组。
-R处理指定目录以及其子目录下的所有文件
四:创建配置文件 保存并退出
vim /etc/my.cnf
#复制以下内容
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone = '+8:00'
五:初始化数据库
#先安装一下这个东东,要不然初始化有可能会报错
yum install libaio
#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/log/
vim mysqld.log
:wq
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
六:查看初始密码
cat /var/log/mysqld.log
最后一行:root@localhost: 这里就是初始密码
七:启动服务,进入mysql,修改初始密码,运行远程连接
cd /var/run/
mkdir mysqld
chmod 777 mysqld
cd mysqld
vim mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql mysqld.pid
/usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/bin/mysql -uroot -p 你在上面看到的初始密码
# 以下是进入数据库之后的sql语句
1>重置密码
alert 重置密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
2>查看初始化的用户信息 select host,user from mysql.user;
3>修改root用的可以远程链接(localhost-->%)
update mysql.user set host='%' where user='root';
4>刷新
flush privileges;
八:开机自动启动
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
使用navicat输入用户密码连接mysql成功 完成!
鉴于很多童鞋反应,mysql5.7安装后出现无法启动,建立/var/run/mysqld 并赋权mysql用户解决了启动的问题,但是重启系统后又出现无法启动的问题,导致/var/run/mysqld 目录每次重启后都需要手动去创建并赋权mysql用户才能起到mysql,可以说,这是mysql5.7的一个小BUG,经过探索实践,现给出终极解决方案:
首先申明,修改my.cnf没有用。
之所以/var/run/mysqld 目录每次重启后都需要手动去创建,是因为/var/run/目录下建立文件夹是在内存中,故每次重启后内存被清空导致/var/run/mysqld 也被清除,从而导致无法启动mysql。
vim /etc/init.d/mysqld
找到下面字段
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
mypidfile="$result"
修改为
get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/var/lib/mysql/mysqld.pid"
mypidfile="$result"
保存后退出,执行下面命令:
systemctl daemon-reload
//重构进程
service mysqld start
//启动mysql
chkconfig mysqld on
//加入随系统启动启动
至此,解决。