1、查看软件环境
#查看操作系统版本
[root@localhost mysql]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
#查看操作系统是否64位的
[root@localhost mysql]# getconf LONG_BIT
64
2、操作系统初始化
#临时关闭SElinux
setenforce 0
#永久关闭SElinux,重启才生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
3、创建用户和目录
#创建mysql用户,但不能用于ssh登录
useradd mysql -u 27 -s /sbin/nologin
groupmod -g 27 mysql
#查看一下mysql的id号
id mysql
#创建mysql初始化数据目录
mkdir -p /data/mysql/
#授权给mysql用户
chown -R mysql:mysql /data/mysql/
4、下载包
cd /usr/local/
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
5、解压
cd /usr/local/
tar -xzf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
#重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
#授权给mysql用户
chown -R myql:mysql /usr/local/mysql/
6、配置my.cnf
cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
tmpdir=/tmp
max_connections=100
character-set-server=utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysqld_safe]
log-error=/data/mysql/error.log
pid-file=/data/mysql/mysql.pid
7、mysql初始化
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql
自动生成的初始化密码:
root@localhost: f7mCoMHayA,i
8、做成服务
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
9、启动mysql
service mysqld start
10、自启动
#centos 7.*版本默认rc.local没有执行权限,要手工添加执行权限
chmod +x /etc/rc.local /etc/rc.d/rc.local
#追加启动命令到rc.local的最后一行
echo 'service mysqld start' >> /etc/rc.local
11、配置path,方便使用mysql、mysqldump等命令
PATH=/usr/local/mysql/bin:$PATH
12、修改密码
mysql -u root -p'f7mCoMHayA,i'
mysql> set password for 'root'@'localhost'=password('hello@2018');
13、mysql用户授权
mysql -u root -p'f7mCoMHayA,i'
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hello@2018' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'hello@2018' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'hello@2018' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'::1' IDENTIFIED BY 'hello@2018' WITH GRANT OPTION;
mysql> flush privileges;