CentOS7.6安装mysql8.0.34

一、查看服务器相关信息

cat /etc/redhat-release
cat /proc/version 

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# cat /proc/version
Linux version 3.10.0-957.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
 

查看OS版本

CentOS上执行,查看OS版本

[root@localhost ~]#  rpm -qa | grep glibc
glibc-common-2.17-260.el7.x86_64
glibc-2.17-260.el7.x86_64

二、mysql8.0.34下载

从官网下载MySQL
因为教材使用的是8.0.31版本的MySQL,所以这里附上8.0.31版本MySQL的下载链接。

解压版MySQL 下载地址

CentOS7.6安装mysql8.0.34_第1张图片

CentOS7.6安装mysql8.0.34_第2张图片

 CentOS7.6安装mysql8.0.34_第3张图片

三、mysql8.0.34安装及配置步骤

1、修改并禁用 SELinux 功能

vi /etc/selinux/config
修改后:
 
SELINUX=disabled
 
保存退出后执行
 
setenforce 0

2、查看系统是否自带mariadb并卸载(防止mysql与mariadb的文件发生冲突)

查询 rpm -qa | grep mariadb
 
删除 rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

3、将下载好的mysql压缩包上传到服务器并解压至 /usr/local/ 路径下,重命名为mysql

解压 tar -xvf mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
     cd /usr/local/
命名 mv mysql-8.0.34-linux-glibc2.12-x86_64 ./mysql

4、进入mysql文件夹,创建data,log目录(这里的data和log目录根据自己的磁盘情况而定)

cd mysql
mkdir data log
touch ./log/mysql.log

5、创建mysql用户和组并修改权限

groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql

6、创建编辑my.cnf配置文

vi /etc/my.cnf

输入i 进入编辑模式后,将下方内容粘贴到文件中输入:wq退出并保存

[client]
port = 3306
 
#根据实际情况调整mysql.sock配置
socket = /tmp/mysql.sock
 
[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
 
#服务端口号 默认3306
port = 3306
 
#mysql安装根目录
basedir = /usr/local/mysql
 
#mysql数据文件所在位置
datadir = /usr/local/mysql/data
 
#pid
pid-file = /usr/local/mysql/mysql.pid
 
#设置socke文件所在目录
socket = /tmp/mysql.sock
 
#设置临时目录
tmpdir = /tmp
 
# 用户
user = mysql
# 允许访问的IP网段
bind-address = 0.0.0.0
 
#错误日志
log_error=/usr/local/mysql/log/mysql.log
 
#设置认证插件
default_authentication_plugin=mysql_native_password
 
#设置sqlmode(根据需求自定义)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
 
 
# 跳过密码登录
#skip-grant-tables
 
#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking
 
#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1
 
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
 
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
 
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
 
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
 
#最大连接数
max_connections = 400
 
#最大错误连接数
max_connect_errors = 1000
 
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
 
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
 
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
 
#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728
 
#mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5

7、进入mysql文件夹的bin目录下,初始化mysql

进入mysql文件夹的bin目录下,初始化mysql     --如有路径变动,注意修改对应路径

cd /usr/local/mysql/bin
./mysqld --user=mysql   --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize

配置文件默认 /etc/my.cnf

8、启动MySQL服务

# cd ..
# cd support-files/
# ./mysql.server start

9、将MySQL加入系统进程中

#  cp mysql.server /etc/init.d/mysqld

重启MySQL服务:

# service mysqld restart

10、修改登录密码

# cd ..

# cd bin/

# ./mysql -u root -p

CentOS7.6安装mysql8.0.34_第4张图片

修改密码:

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'centos_data';

11、设置远程登录 

mysql> use mysql;

mysql> update user set user.Host='%' where user.User='root';

mysql> flush privileges;

指定防火墙3306开放

firewall-cmd --zone=public --add-port=3306/tcp --permanent

设置完需要重载规则

firewall-cmd --reload

远程连接成功

CentOS7.6安装mysql8.0.34_第5张图片

mysql 函数不能用,配置 (注意:如果后台项目程序已经启动,运行下面配置后,则需要重启项目)
1.查询

select @@global.sql_mode


查询结果:

'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

2.重新设置,将 ONLY_FULL_GROUP_BY 去掉

set @@global.sql_mode= 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

PS:设置好后,运行sql需要关闭当前链接,重新打开运行即可。

你可能感兴趣的:(mysql,数据库)