mysql 8 卸载安装配置(linux)

官网下载地址 http://dev.mysql.com/downloads/mysql/

1、自带的mariadb

CentOS7默认安装mariadb

先执行查询:rpm -qa | grep mariadb

如果存在mariadb执行删除:rpm -e --nodeps mariadb-libs

2、检查已安装的mysql

查看已安装mysql的版本:mysqladmin -V

 卸载:

# 停掉mysql服务
service mysqld stop
# 或者
systemctl stop mysqld

# 查看已安装的mysql安装包,参照下面的截图
rpm -qa|grep mysql

# 使用如下指令将搜索到的mysql安装包全部卸载
rpm -e --nodeps  mysql-community-common-5.7.38-1.el7.x86_64 
rpm -e --nodeps  mysql-community-libs-5.7.38-1.el7.x86_64
rpm -e --nodeps  mysql-community-client-5.7.38-1.el7.x86_64
rpm -e --nodeps  mysql-community-server-5.7.38-1.el7.x86_64


# 删除配置文件
rm -vf /etc/my.cnf.rpmsave
# 删除日志文件
rm -vf /var/log/mysqld.log
# 查看并删除其他残留文件
find /  -name  mysql
# 依次删除
rm -rf 对应路径

效果如下:

mysql 8 卸载安装配置(linux)_第1张图片

 删除残留文件,执行  find /  -name  mysql

mysql 8 卸载安装配置(linux)_第2张图片

3、安装

将mysql8安装包上传到/opt目录下:

# mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以/tmp需要较大的权限
chmod -R 777 /tmp

# 切换到/opt目录,并安装:
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm

# 查看安装的版本
mysqladmin --version

# 初始化mysql:使用mysql系统用户以安全模式为mysql的root用户生成临时密码,第一次登录后要立马修改。
mysqld --initialize --user=mysql
# 查看临时密码  
cat /var/log/mysqld.log
# 启动mysql:
systemctl start mysqld.service
#使用初始密码登录
mysql -uroot -p回车,然后输入化密码
#修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

效果图:

mysql 8 卸载安装配置(linux)_第3张图片

4、启动mysql命令

 # 启动:
systemctl start mysqld.service
# 关闭:
systemctl stop mysqld.service
# 重启:
systemctl restart mysqld.service
# 查看状态:
systemctl status mysqld.service

注意:一定要先初始化命令再启动服务

原因:

1、在MySQL8.0中,如果第一次启动服务器分别执行了数据初始化命令mysqld --initialize --user=mysql和服务启动命令systemctl start mysqld,那么服务器默认没有密码校验策略,此时可以修改为任意密码。

2、如果第一次启动服务器直接执行了systemctl start mysqld命令,那么数据会被自动初始化,那么服务器默认具有密码校验策略,此时密码长度必须最少8位,至少有一个数字,一个大写字母,一个小写字母,一个特殊字符。

5、字符集问题(不用在意)下一个

#查看mysql的默认编码,发现默认编码是utf8,无需修改
show variables like '%char%';

#修改编码,需要修改mysql配置文件:
vi /etc/my.cnf

#在mysqld下添加一行编码配置:
character_set_server=utf8

#保存并退出,重启mysql服务:
service mysql restart

 

6、远程访问及权限管理

默认情况下,mysql不允许远程连接。只允许localhost连接

mysql 8 卸载安装配置(linux)_第4张图片

 1.确认虚拟机防火墙已关闭(关闭了就不用看了)

# 关闭防火墙或者开放端口号:
systemctl start firewalld.service
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl enable firewalld.service
systemctl disable firewalld.service

-- 查看开放的端口号
firewall-cmd --list-all

-- 设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent

-- 重启防火墙
firewall-cmd --reload 

2、解决远程访问问题,修改host为通配符%,刷新权限

#执行
select user,host,plugin,authentication_string,select_priv,insert_priv from mysql.user;

#修改Host为通配符%
update mysql.user set host = '%' where user ='root';

# 刷新权限
flush privileges;

出现新问题,mysql5.7之前密码加密使用的插件是mysql_native_password,mysql8修改为caching_sha2_password

mysql 8 卸载安装配置(linux)_第5张图片

解决方法:

一种是升级SQLyog和Navicat(新版SQLyog和Navicat不会出现此问题),另一种是把MySQL用户登录密码加密规则还原成mysql_native_password。

Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行SQL:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';#自己设置的密码

#刷新权限
flush privileges;

完美,哈哈!当然还有其他的配置

其他:

①开启profiling,性能分析工具

​
# 查看参数表中的profiling(性能分析工具)是否开启
show variables like '%profiling%';

# 本次会话开启profiling
set profiling=1;

​

如图:

mysql 8 卸载安装配置(linux)_第6张图片

②MySQL存储引擎

# 查看mysql提供的所有存储引擎
show engines;

# 查看当前默认的存储引擎
show variables like '%storage_engine%';
# 或者
SELECT @@default_storage_engine;

# 修改存储引擎
SET DEFAULT_STORAGE_ENGINE=MyISAM;
#或者修改 my.cnf 文件: 
default-storage-engine=MyISAM

需要重启mysql服务才能生效!

ok,赞赞赞

你可能感兴趣的:(mysql,java,开发语言,mysql)