文章目录
一、下载
点击进入下载地址
MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。
二、安装
2.1、卸载CentOS自带的mariadb
# rpm方式卸载
# 查询安装了是否mariadb , mysql
rpm -qa | grep mariadb
# 卸载mariadb
sudo rpm -e mariadb-libs-5.5.68-1.el7.x86_64
# 注意,有可能mariadb要某些依赖才能卸载,要么安装完依赖再卸载,或者如下,强制卸载:
sudo rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
2.2、上传并解压
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
此处我把解压后的文件重命名为5.7.36
mkdir 5.7.36/data #在5.7.36新建data目录
mkdir 5.7.36/log #在5.7.36新建log目录
2.3、添加mysql用户组,并在mysql用户组中添加mysql用户
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/soft/mysql #将mysql目录的权限赋予mysql用户
2.4、修改 my.cnf
进入 /etc 目录下查看是否存在my.cnf 不存在要新建一个的 赋权777
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/soft/mysql/5.7.36
# 设置mysql数据库的数据的存放目录
datadir=/usr/soft/mysql/data
#设置mysql日志存放文件
log-error=/usr/soft/mysql/log/mysqld.log
#设置sock存放文件
socket=/var/lib/mysql/mysql.sock
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[client]
#设置sock存放文件
socket=/var/lib/mysql/mysql.sock
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
如果socket路径不存在就创建一个 同时赋给777权限
2.5、初始化MySQL
进入到 5.7.36 目录使用如下命令
./bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/usr/soft/mysql --datadir=/usr/soft/mysql/data
初始化命令,初始化成功的情况下,会产生一个随机的默认密码,有必要保留一下
如果没有就去日志里找
2.6、将MySQL添加至服务,并配置其环境变量
添加服务
cp /usr/soft/mysql/support-files/mysql.server /etc/init.d/mysqld
修改/etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld on
添加环境变量profile
export MYSQL_HOME=/usr/soft/mysql/5.7.36
export PATH=.:$MYSQL_HOME/bin:
刷新profile
source /etc/profile
2.7、进入MySQL并修改密码
mysqld.pid文件要777权限
service mysqld start #启动mysql
mysql -uroot -p #回车,然后输入前面初始化生成的密码
alter user 'root'@'localhost' identified by 'root'#更改密码
2.8、修改root用户为任意ip可登入
use mysql;
update user set host='%' where user='root';
flush privileges;
select host,user from user;