Centos8安装mysql指定版本

环境清理

1、查看之前已安装的Mysql

rpm -qa |grep mysql

如果之前已经安装过,则会出现一些Mysql相关的组件
2、卸载之前已经安装的Mysql

rpm -e mysql-xxx

yum安装Mysql

1、安装wget,有就不用了

yum install wget

2、下载mysql的rpm

wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

3、安装mysql的rpm

rpm -ivh mysql80-community-release-el7-3.noarch.rpm

这时候会在 /etc/yum.repos.d/目录下生成两个文件
mysql-community.repo和mysql-community-source.repo

4、修改repo文件(指定安装版本)

cd /etc/yum.repos.d/
vim mysql-community.repo

在这里插入图片描述

将指定版本**[mysqlxx-community]**下的“enabled”,1 表示安装,0表示不安装
修改完保存退出

5、安装Mysql

yum -y install mysql-community-server

下载client缓慢的解决思路:将Centos7的yum配置为阿里云的镜像

步骤如下:
yum clean all
yum update
备份:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的CentOS-Base.repo 到/etc/yum.repos.d/              wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
yum makecache

如果报错:
在这里插入图片描述
先执行如下命令后再执行安装命令

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

如果报错:
在这里插入图片描述
先执行如下命令后再执行安装命令

yum module disable mysql
yum -y install mysql-community-server

如果报错:
在这里插入图片描述

# 执行下面命令进行安装
yum -y install mysql-community-server --nogpgcheck

6、查看Mysql版本

[root@localhost yum.repos.d]# mysql --version
mysql  Ver 14.14 Distrib 5.7.32, for Linux (x86_64) using  EditLine wrapper

7、启动Mysql并查看Mysql状态

systemctl start mysqld.service
systemctl status mysqld.service

在这里插入图片描述

8、第一次完成安装后设置连接密码

  • 首先查找初始密码
grep "password" /var/log/mysqld.log

在这里插入图片描述

  • 使用查找的初始密码登录Mysql
mysql -uroot -p

在这里插入图片描述

  • 设置自定义连接密码

如果想更改密码强度,执行以下命令

密码强度等级 0——low,1——medium,2——strong

set global validate_password_policy=0; 
密码长度
set global validate_password_length=5;

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
  • 开启远程访问
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;

9、其他配置

修改mysql的字符编码(不修改会产生中文乱码问题)

显示原来编码:

show variables like '%character%';

在这里插入图片描述
修改/etc/my.cnf

vim /etc/my.cnf

#在[mysqld]下添加如下内容

lower_case_table_names=1
default-storage-engine=INNODB
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
character-set-server=utf8mb4
init_connect='SET NAMES utf8'

# MySQL支持的SQL语法模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER

skip-name-resolve
bulk_insert_buffer_size=3048M
innodb_autoextend_increment=128M
default-time_zone = '+8:00'
max_connections=10000
group_concat_max_len=10240000
innodb_flush_method=O_DIRECT
innodb_log_file_size=2048M
innodb_buffer_pool_size=6048M
max_allowed_packet=3027000000
secure-file-priv=

检查mysql服务状态:

systemctl status mysql 

重启数据库

systemctl restart mysqld

为firewalld添加开放端口

添加mysql端口3306

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

然后再重新载入

firewall-cmd --reload

在这里插入图片描述

设置开机启动

systemctl enable mysqld
systemctl daemon-reload

扩展

Docker启动mysql

docker run --name mysql8.0.27 -v /home/mysql/8.0.27/conf:/etc/mysql/ -v /home/mysql/8.0.27/data:/var/lib/mysql -v /home/mysql/8.0.27/mysql-files:/var/lib/mysql-files/ -p 80811:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql:latest

导出数据

- 导出整个数据库结构和数据:
   mysqldump -h ip -uroot -p123456 dbname > db.sql;
  (注:-h ip 是远程访问数据库的ip地址,本地执行可以省略,以下同理)

- 导出单个数据表结构和数据:
  mysqldump -h ip -u root -p123456 dbname tablename > tablename.sql;

- 复制数据库:
  mysqldump dbname -uroot -p123456 --add-drop-table | mysql -h ip copy_dbname -uroot -p123456;

- 导出整个数据库结构(不包含数据):
  mysqldump -h localhost -uroot -p123456 -d database > dump.sql

- 导出单个数据表结构(不包含数据):
  mysqldump -h localhost -uroot -p123456 -d database table > dump.sql

- 导出整个数据库数据(不包含结构):
  mysqldump -h localhost -uroot -p123456 -t database > dump.sql

- 导出单个数据表数据(不包含结构):
  mysqldump -h localhost -uroot -p123456 -t database table > dump.sql

错误提示

mysqldump: Couldn’t execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, ‘$.“number-of-buckets-specified”’) FROM information_schema.COLUMN_STATISTICS

原因:
  因为新版的mysqldump默认启用了一个新标志,通过- -column-statistics=0来禁用他

解决方法:
  mysqldump --column-statistics=0 -h ip -u root -p dbname > db.sql;

导入数据

source /tmp/xxx.sql

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值