当前位置: 首页 > news >正文

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 (mockbuild@kbuilder.bsys.centos.org) (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 下载地址

 

三、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

修改密码:

 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

远程连接成功

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需要关闭当前链接,重新打开运行即可。

http://www.lryc.cn/news/129879.html

相关文章:

  • SCF金融公链新加坡启动会 链结创新驱动未来
  • JavaScript【实例、静态方法与属性、原型链、instanceof 运算符、Object 对象的相关方法、对象的继承、多重继承、严格模式】(十九)
  • 【Git】本地搭建Gitee、Github环境
  • 学习ts(四)联合类型、交叉类型、类型断言
  • Linux 内核与架构速查
  • 【Java 动态数据统计图】动态数据统计思路案例(动态,排序,containsKey)五(117)
  • 区块链碎碎念
  • 4.物联网LWIP之C/S编程
  • 在 PyTorch 中使用关键点 RCNN 进行人体姿势估计--附源码
  • Dubbo及Zookeeper安装
  • ZK-C3595、ZK-C35100、ZK-C40100、ZK-C40110超越离合器
  • Azure共享映像库构建VM镜像
  • 【C++】AVL树(平衡二叉树)
  • 「UG/NX」Block UI 面收集器FaceCollector
  • 剑指Offer61.扑克牌中的顺子 C++
  • vue实例挂载过程
  • 【第八讲---视觉里程计2】
  • 设置PHP的fpm的系统性能参数pm.max_children
  • vue3setup标签语法 + vite + delfin 递归组件实现无限评论功能
  • optee中如何开启或关闭所有中断的
  • 基于STM32+微信小程序设计的宠物投喂装置(腾讯云IOT)
  • 2023年上半年软考分数线 软考分数线公布时间
  • centos7的flink安装过程
  • 商城-学习整理-高级-性能压测缓存问题(十一)
  • PHP 三元 !empty 而不是评估为真或假 可用isset()
  • 星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?
  • 使用 Python 获取 Redis 数据库中的所有键
  • C的进阶C++学习方向
  • 【仿写框架之仿写Tomact】二、初始化阶段加载项目中所有servlet类对象
  • Linux实用运维脚本分享