MySQL8.0 Linux版本卸载和安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/DynastyTing/article/details/84895107

https://dev.mysql.com/downloads/

https://dev.mysql.com/downloads/mysql/

 

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

 

卸载:

卸载前关闭MySQL服务

service mysql status

service mysql stop

检查service mysql status

 

rpm -qa | grep -i mysql

rpm -ev删除上面的结果

 

 

最好实用find命令查看MySQL数据库相关的文件,方便后面彻底删除MySQL。

find / -name mysql

rm -rf删除对应的文件

检查find / -name mysql

 

如果有必要,删除mysql用户以及mysql用户组

more /etc/passwd | grep mysql

more /etc/shadow | grep mysql

more /etc/group | grep mysql

 

 

userdel mysql

groupdel mysql

 

 

确认MySQL是否卸载删除

rpm -qa | grep -i mysql

 

 

安装:tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

 

 

 

common–>libs–>client–>server的顺序。若不按照此顺序,也会有一定“依赖”关系的提醒。

 

 

rpm -ivh mysql-community-common*

 

rpm -ivh mysql-community-libs*这一步会报mariadb-libs相关的错

运行yum remove mysql-libs解决这一错误

重试rpm -ivh mysql-community-libs*

 

rpm -ivh mysql-community-client*

rpm -ivh mysql-community-server*

 

 

 

 

四、启动数据库

# systemctl start mysqld 或者 Service mysql start

查看状态:

# systemctl status mysqld

 

五、登录

1)使用my.cnf文件中自动生成一个密码

cat /var/log/mysqld.log | grep password

密码:IVv;G72=G#y_

 

2)使用root登录

mysql -u root -p 输入上面的密码

 

3)修改密码

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'A123@.com';

mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉

老版本set password for root@localhost = password(‘99@A.com’);

 

  • 授权远程连接

 

use mysql

select host, user, authentication_string, plugin from user;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'A123@.com' PASSWORD EXPIRE NEVER;

将 MySQL 用户登录的加密规则修改为 mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'A123@.com';

FLUSH PRIVILEGES;

其中A123@.com为之前root账号设置的密码

 

我们看host和user两列,host和user中root对应的值为localhost,即root用户的访问权限为localhost,想把该用户的访问权限设置可远程连接,我们只需要把localhost更改为通配的%就可以了。若是的权限操作语句没有走通,也可以直接使用update语句来更改吧。

 

update user set host = "%" where user = "root";

FLUSH PRIVILEGES;

 

开启3306端口:

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重启防火墙:

service iptables restart

 

 

 

-- 查看数据库

show databases;

-- 模糊查询包含y的数据库

show databases like '%y%';

-- 查看表

show tables;

--模糊查询包含user的表

show tables like '%user%';

-- 查看列, 查看user表信息

desc user;

-- 查看username用户被赋予的权限
show grants for username;

 

 

 

 

实现免密登录

vim /etc/my.cnf
[mysqld]

#跳过密码验证

skip-grant-tables

user=root

重启systemctl restart mysqld

输入mysql

如图

 

 

 

MySQL8默认的认证插件是caching_sha2_password,很多客户端都不支持,可将默认的认证插件修改为mysql_native_password,在配置文件my.cnf中配置default_authentication_plugin=mysql_native_password。

 

 

 

 

查看/var/log/mysqld.log的日志

 

 

删掉/var/lib/下的mysql文件夹解决上面的错

 

find / -name mysqld

/usr/sbin/mysqld --initialize-insecure

初始化参数我使用了--initialize-insecure,这样不会设置初始化root密码,如果是 --initialize的话,会随机生成一个密码:

推荐使用/usr/sbin/mysqld --initialize

创建data文件夹以及对应的文件

 

 

 

展开阅读全文

没有更多推荐了,返回首页