1.从官网下载安装包
下载地址:https://dev.mysql.com/downloads/mysql/

由于之前没有注意操作系统版本,下载下来的安装包在安装过程中各种坑,填都填不完,一定要注意,千万别选错了!!!我的操作系统为centos7.8.64(64),我这选的是mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
本人已经下好的安装包:
链接:https://pan.baidu.com/s/1JVZ92fVuG6RpF61AcSYHTQ
提取码:3254

2.由于mariadb中的lib包和mysql8.0.20的lib包冲突,如果已经安装了mariadb,则需要将其卸载。
查看系统中是否已经安装mariadb:rpm -qa | grep mariadb
卸载mariadb:rpm -e mariadb-libs --nodeps
再次查看mariadb是否卸载完成:rpm -qa | grep mariadb
下边什么都没有,则表示已卸载完成。
3.上传安装包
在/usr下创建softbag文件夹,用于暂存放安装包
上传方式一(不建议用,比较慢,还繁琐,不过命令是对的,亲测有耐心一定会成功):
使用xshell命令:
cd /usr
mkdir softbag
cd softbag
先安装上传rz:yum install -y lrzsz
上传文件:rz
等待中...,上传成功后查看命令:ls
上传方式二:使用xftp(贼简单不再讲)
xshell和xftp安装包:
链接:https://pan.baidu.com/s/1kNszZOsZm5GXtr9cGxceQg
提取码:8523
4.解压安装包(安装到/usr/local/mysql)
cd /usr/softbag
tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
移动安装包命令顺序:
cd /usr/local
mkdir mysql
mv ./mysql-community-* /usr/local/mysql/
5.在/usr/local/mysql目录下执行安装程序
cd /usr/local/mysql
rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm --nodeps --force
6.mysql数据库初始化和相关配置
mysqld --initialize;
执行该命令后r如果报错:
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解决方案:yum install -y numactl
完成后再次执行: mysqld --initialize;
更改属组
chown mysql:mysql /var/lib/mysql -R;
启动mysql
systemctl start mysqld.service;
开机启动设置
systemctl enable mysqld;
7.查看数据库的密码
cat /var/log/mysqld.log | grep password
执行这个命令后如果没有任何反应,看不到密码,解决办法:
7.1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这):rm -rf /var/lib/mysql
7.2.重启mysqld服务:systemctl restart mysqld
7.3.再去找临时密码:cat /var/log/mysqld.log | grep password
8.登录数据库,第一次登录会提示修改密码
mysql -uroot -p+默认密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
上面的密码改成123456或其他的一定会报错,大概意思就是密码格式或强度不够,但是这个格式和强度需要先登进去才能改。
改密小妙招:把默认密码里的某个字母换掉,先登进去再说,哈哈哈。。。
改完密码,需要退出用新密重新登录
9.修改root密码:依次执行
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
set global validate_password.length=1;
设置本地登陆密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cheng123456';
10.设置远程访问权限(建议直接看12后再考虑要不要操作)
create user 'root'@'%' identified with mysql_native_password by '旧密码'
设置远程登陆密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'cheng123456';
给远程新用户设立权限
GRANT ALL PRIVILEGES ON . TO 'root'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
11.Linux 7以上系统使用如下命令操作mysql:
systemctl restart mysqld.service
systemctl start mysqld.service
systemctl stop mysqld.service
12.mysql可能用到命令
创建数据库
CREATE DATABASE spring_test CHARACTER SET utf8 COLLATE utf8_general_ci;
创建用户
create user 'cheng_jiang_tao'@'%' identified with mysql_native_password by 'cheng123456'
修改用户密码
ALTER USER 'cheng_jiang_tao'@'%' IDENTIFIED WITH mysql_native_password BY 'cheng123456';
赋予全部权限(建议不要用)
GRANT ALL PRIVILEGES ON . TO 'cheng_jiang_tao'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
赋予新建数据库的全部指定权限
grant 权限 on 数据库.表 to '用户'@'IP地址';
GRANT ALL PRIVILEGES ON spring_test.* TO 'cheng_jiang_tao'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
grant 权限 on 数据库.表 to '用户'@'IP地址';
//all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
...
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(关闭MySQL)
super ??使用change master、kill、logs、purge、master和set global。还允许mysqladmin????调试登陆
replication client 服务器位置的访问
replication slave 由复制从属使用
// 数据库名.* 数据库中的所有
数据库名.表 指定数据库中的某张表
数据库名.存储过程 指定数据库中的存储过程
*.* 所有数据库
revoke 权限 on 数据库.表 from '用户'@'IP地址';
删除用户
drop user 'cheng_jiang_tao'@'%';
展示用户权限
show grants for 'cheng_jiang_tao'@'%'
参考地址:
https://blog.csdn.net/kunpeng_mubao/article/details/106698987
https://www.cnblogs.com/yunian139/p/11804965.html