Mysql8.0数据库安装、用户创建及授权、设置白名单--看这一篇就够了!

Mysql对于大家来说可能是再也熟悉不过的了,是我们日常开发中经常使用的一款关系型数据库,之前可能更多地是使用别人搭建好的数据库服务,今天咱们从搭建的角度去讲解下服务的搭建流程,以及如何创建用户、赋予权限、设置白名单及修改端口。

本文以Mysql8版本为例,讲解下centos7系统下的搭建流程。

1.安装前的环境检查

安装数据库之前,需要检查下当前系统是否自带mysql数据库,以及当前服务器上是否已经安装过数据库

  • 1.1 查看当前系统是否自带MySQL数据库

复制代码
rpm -qa | grep mysql

如有,会显示软件名称

  • 1.2 卸载自带的MySQL数据库

复制代码
rpm -e --nodeps xxx

xxx换成第一步查询出的服务名称

  • 1.3 使用如下命令查询下系统中是否存在多余的mysql相关信息,然后删除无用的文件或者目录即可

复制代码
find / -name mysql

  • 1.4 如果之前安装过数据库,卸载对应的用户与组

复制代码
sudo userdel mysql``sudo groupdel mysql

2.安装数据库

  • 2.1 下载安装包

mysql8.0.30\](链接:[pan.baidu.com/s/10ERPeTWa...](https://link.juejin.cn?target=https%3A%2F%2Fpan.baidu.com%2Fs%2F10ERPeTWa2w4LZkErbDVekA "https://pan.baidu.com/s/10ERPeTWa2w4LZkErbDVekA") 提取码:yqsy) * 2.2 解压软件包 复制代码 tar -xvf mysql-xxxxxx.tar.gz` ` * 2.3 移动解压包到指定目录并重命名 复制代码 mv mysql-xxx /usr/local/mysql` ` * 2.4 创建用户组并修改权限 复制代码 cd /usr/local/mysql ` `groupadd mysql useradd -r -g mysql mysql mkdir -p /data/mysql chown mysql:mysql -R /data/mysql` ` * 2.5 编辑my.cnf配置文件,添加如下配置 复制代码 vim /etc/my.cnf` ` 复制代码 [mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true lower_case_table_names=1 max_connections = 4096 max_connect_errors = 100` ` `注意`将上述配置复制到my.cnf配置文件中,要检查确认下配置开头的\[mysqld\]和bind-address是否复制完整,以免出错,尽量不要在本地编辑好上传到/etc目录下,可能会因编码格式问题导致部署报错 * 2.6 进入安装目录,并初始化数据库 复制代码 cd /usr/local/mysql/bin/ ` `./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize` ` * 2.7 查看初始密码 my.cnf配置文件中包含了密码存储的位置,即/data/mysql/mysql.err文件 复制代码 cat /data/mysql/mysql.err` ` !\[初始密码图\](https://img-blog.csdnimg.cn/8fc33136fd714060a87046cde8023ab4.png#pic_center) * 2.8 将mysql服务复制到/etc/init.d目录,便于通过service命令启动 复制代码 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql` ` * 2.9 启动服务从查看信息 复制代码 service mysql start` `` `ps -ef|grep mysql` ` * 2.10 登录 复制代码 ./mysql -u root -p ` `回车,然后输入初始化密码即可` ` * 2.11 查看库信息 登录成功后,可以使用use mysql命令查看下库信息,可能会提示让你修改密码,直接执行命令修改即可 复制代码 SET PASSWORD = PASSWORD('xxxxxxx'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES; ` ` 数据库启动成功后,其他ip可能无法访问,需要设置为其他ip可访问模式: 复制代码 update user set host = '%' where user = 'root'; #%表示root用户能在任何host访问 FLUSH PRIVILEGES; ` ` 至此,数据库服务已经可以正常访问了,也可以通过不同的客户端进行连接 * 2.12 停止服务 复制代码 service mysql stop` ` **3.创建用户及授权** * 3.1 创建用户 复制代码 CREATE USER 'xxxx'@'%' IDENTIFIED BY 'password'; xxx换成用户名,password换成实际密码` ` * 3.2 设置权限 复制代码 GRANT ALL PRIVILEGES ON *.* TO 'xxxx'@'%' WITH GRANT OPTION; //授予所有权限 GRANT ALL PRIVILEGES ON `xxx`.* TO 'username'@'%'; //授予xxx数据库的所有权限,username换成实际用户名 grant update,delete,insert,select ON `xxx`.* TO 'username'@'%';//授予xxx数据库的部分权限,username换成实际用户名 赋予权限后,要刷新使之立即生效 FLUSH PRIVILEGES; ` ` * 3.3 查询给用户赋予的权限 复制代码 show grants for 'username'@'%';` ` * 3.4 删除用户 如果想删除用户,或者修改访问权限,执行对应命令即可,执行完刷新使之立即生效 复制代码 drop user 'username'@'%';` `FLUSH PRIVILEGES;` ` 删除用户也可以用如下命令, 复制代码 drop user 'username'@'ip';` ` 删除前可以使用select user,host from user;查看下是否使用%还是具体的ip * 3.5 更改用户的访问模式 此处用来设置是本地访问,指定ip可访问还是所有ip均可访问,具体的命令如下所示: 复制代码 update user set host = 'localhost' where user = 'username'; //本地访问` `update user set host = '%' where user = 'username'; //所有ip可访问` `update user set host = 'ip' where user = 'username'; //指定的ip可访问` ` username换成实际用户名 设置后,执行刷新命令使之立即生效 复制代码 FLUSH PRIVILEGES;` ` **4.设置白名单及授权** 复制代码 CREATE USER 'username'@'ip' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON `xxx`.* TO 'username'@'ip';` ` 以上命令设置后只有指定的ip可以访问数据库,如果要设置多个白名单ip,多次执行以上命令即可,然后每次执行时修改对应的ip信息,执行完执行刷新命令使之立即生效 复制代码 FLUSH PRIVILEGES;` ` 此外,如果想修改数据库端口,进入到/etc/my.cnf文件,然后直接修改对应端口,修改后重启服务即可 好了,以上就是数据库的整个安装和授权过程,如果对你有所帮助,欢迎一键三连,你的认可和肯定就是我创作的最大动力。

相关推荐
qq_392397126 分钟前
Redis常用操作
数据库·redis·wpf
六毛的毛7 分钟前
Springboot开发常见注解一览
java·spring boot·后端
AntBlack14 分钟前
拖了五个月 ,不当韭菜体验版算是正式发布了
前端·后端·python
315356691316 分钟前
一个简单的脚本,让pdf开启夜间模式
前端·后端
程序漫游人20 分钟前
centos8.5安装jdk21详细安装教程
java·linux
uzong41 分钟前
curl案例讲解
后端
超级码.里奥.农1 小时前
零基础 “入坑” Java--- 七、数组(二)
java·开发语言
hqxstudying1 小时前
Java创建型模式---单例模式
java·数据结构·设计模式·代码规范
挺菜的1 小时前
【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
java·开发语言·算法
A__tao1 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql