1、使用AlmaLinux9.0测试安装(相当于centos9.0发行版) 可以使用centos7、8、9或者阿里龙蜥、华为欧拉等安装,方法不变
2、从官网下载MySQL8.0.X安装包(这里使用最新MySQL Community Server 8.0.32 社区版),下载地址:https://dev.mysql.com/downloads/mysql/
3、选择Red Hat Enterprise Linux/Oracle Linux,在选择Red Hat Enterprise Linux9/Oracle Linux9(x86,64-bit)下载mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar;如果使用centos7或centos8,选择相应版本(需要注册账号并登录)
4、下载完成后将文件上传保存到Linux服务器下的 /opt/soft/mysql目录,如果此目录不存在,需要自己创建,mkdir -p /opt/soft/mysql
5、进入/opt/soft/mysql目录,解压文件:tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
6、依次安装以下安装包:
rpm -ivh mysql-community-common-8.0.32-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el9.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.32-1.el9.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.32-1.el9.x86_64.rpm --nodeps --force
7、查看是否安装完整 rpm -qa | grep mysql 显示如下 :
mysql-community-common-8.0.32-1.el9.x86_64
mysql-community-libs-8.0.32-1.el9.x86_64
mysql-community-client-8.0.32-1.el9.x86_64
mysql-community-server-8.0.32-1.el9.x86_64
8、对 mysql 进行初始化和相关配置
mysqld --initialize; # 如果抛出异常需要先安装compat-openssl 如果正常执行,则无需安装
chown mysql:mysql /var/lib/mysql -R; 将/var/lib/mysql目录赋值给mysql用户及mysql用户组
systemctl start mysqld(或者mysqld.service); #启动MySQL服务
systemctl enable mysqld; #将MySQL服务添加到自启动列表
9、编辑/etc/my.cnf文件:vim /etc/my.cnf,最后添加:lower_case_table_names=1
10、查看MySQL初始密码:cat /var/log/mysqld.log | grep password
11、登陆MySQL:mysql -uroot -p 然后按照提示输入上一步查询到的初始密码,登陆MySQL
12、修改root用户密码(其中‘你自己的密码’部分改为你要修改的新密码):ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你自己的密码';
如果提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,是因为密码太简单,不符合validate_password密码校验插件要求,设置复杂密码即可。
13、远程访问权限,分开执行 第一条的 '密码'替换为你自己要设置的root用户的新密码
create user 'root'@'%' identified with mysql_native_password by '密码';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
14、如果开启Linux防火墙,远程访问需要关闭Linux防火墙允许3306端口,或者将3306端口加入防火墙规则
systemctl stop firewalld #关闭防火墙
systemctl start firewalld #开启防火墙
#以上步骤可以不操作,直接用下面的命令添加3306端口到防火墙规则列表
firewall-cmd --zone=public --permanent --add-port=3306/tcp 开启防火墙3306端口
systemctl restart firewalld # 重启防火墙,让开放端口生效
15、如果重启或者启动MySQL报如下错误:
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
先添加如下配置到/etc/my.cnf 文件结尾
explicit_defaults_for_timestamp=true
并则将 /var/lib/mysql/路径下的文件全部删除(等于删库重建,慎重操作)
rm -rf /var/lib/mysql/*
ls -ltr /var/lib/mysql
查看MySQL状态:systemctl status mysqld
启动MySQL:systemctl start mysqld
重启MySQL:systemctl restart mysqld
停止MySQL:systemctl stop mysqld
16、创建MySQL新用户并授权:
使用root用户登陆:mysql -uroot -p
切换至mysql库:use mysql
create user 'hkl'@'%' identified by 'test@1234'; 创建 hkl用户,%为不限IP登录,密码为test@1234
# hkl替换为你要新建的用户名 test@1234替换为你新建用户的密码(并牢记密码),简单密码不行,需要使用复杂密码(大小写字母、特殊字符+数学)
flush privileges; #刷新特权
给新用户授权 给新建用户授予所有权限 all privileges
grant all privileges on test_db_one.* to 'test'@'%' with grant option;
说明:
(1):all privileges 拥有所有权限
(2):这里的 all privileges 可以替换为 select(查询权限), update(更新权限), delete(删除局部权限), insert(插入权限), drop(删除整体权限), create(创建权限)等
(3):*.* 左右星号分别为数据库和数据表
(4):''@'' 艾特符号左右分别代表用户名和访问权限,%为不限制远程IP访问
(5):with grant option 表示该用户可以给其他用户赋权,但是不能超过该用户的权限
查看用户权限:show grants for 'hkl'@'%'; #hkl替换为你自己创建的用户名
撤销用户权限:
revoke all privileges on test_db_one.* from 'hkl'@'%'; #hkl替换为你自己创建的用户名
或:revoke all privileges,grant option from 'hkl'@'%'; #hkl替换为你自己创建的用户名
删除用户:drop user 'hkl'@'%'; #hkl替换为你要删除的用户名
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




