腾讯云centos7.8.64(64)服务器安装mysql8.0.20数据库

1.从官网下载安装包

下载地址:https://dev.mysql.com/downloads/mysql/

FQXI9L59)TP7KYNL}X}60N0.png

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容