MySql教程

centos7安装MySQL8简易教程

本文主要是介绍centos7安装MySQL8简易教程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、检测是否存在DB

yum安装MySQL简便、稳定,centos7默认的db是mariadb,先卸载mariadb,先查看是否安装mariadb,命令如下:

rpm -qa | grep mariadb

如果则拷贝名称,使用下面命令删除

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

二、安装MySQL8

1、yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

2、yum安装MySQL:sudo yum install mysql-community-server

3、启动MySQL服务:sudo service mysqld start在这里插入图片描述

4、检查MySQL服务状态:sudo service mysqld status
在这里插入图片描述

5、查看初始密码:sudo grep ‘temporary password’ /var/log/mysqld.log
在这里插入图片描述

6、本地MySQL客户端登录:mysql -uroot -p

7、输入mysqld.log查到密码,如果没有,直接回车,然后输入命令 flush privileges
8、修改root登录密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’;(注意要切换到mysql数据库,使用use mysql)

注意:开始遇到问题是不输入密码或输错密码都能连接MySQL server,后来在修改允许阿里CentOS7允许远程操作MySQL数据库时,才发现需要去调整 /etc/my.cnf文件,注释掉skip-grant-tables,重启MySQL服务(sudo service mysqld restart),quit退出连接,重新连接就需要输入密码了后期如果忘记密码,可以通过skip-grant-tables配置跳过输入密码登录MySQL,执行7、8步进行修改,如果‘root’@'localhost'变为'root'@'%',那么alter语句中的也要修改

9、配置MySQL允许外部访问:

  • 首先设置阿里云安全组规则入方向,支持MySQL端口3306可访问(协议类型下拉菜单中有MySQL端口)
  • 服务端登录MySQL,use mysql;然后执行select user,host from user可查看用户及对应允许访问主机然后执行update user set host = ‘%’ where user =‘root’;允许任何外部可访问;再执行上一步查看命令,可比较结果

10、如此即可连接

补充:show global variables like ‘port’;可查看MySQL服务端口,如果看到的value为0,则说明没有使用密码登录,需要去修改my.cnf文件;

my.cnf文件也可以通过port=3306来指定MySQL服务端口,重启MySQL服务即可

11、java连接8.0及以上MySQL数据库使用新驱动

这个问题是在我用本地工具可以连同阿里云服务器上的MySQL,而本地用java怎么也连不上,偶然间点开工具测试连接的详细信息发现新的驱动,更改java对应驱动后,连接成功

12、后记得刷新权限,如果想限制只能让指定IP登录请把%替换成IP地址

fangcs用户外部ip能访问,使用下面语句:     

CREATE USER 'fangcs'@'%' IDENTIFIED BY ‘'fangcs!!2021‘;
GRANT ALL PRIVILEGES ON *.* TO 'fangcs'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

–此命令不适用8.0以上版本 grant all PRIVILEGES on . to ‘fangcs’@’%’ identified by '‘fangcs#2021’ with grant option;
原有如下:
查询mysql具体版本

SELECT @@VERSION

问题分析:mysql版本8.0.26,在给新用户授权时,发生了变化:

RROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'Qweasd_123' with grant option' at line 1

出错的语句:

grant all privileges on *.* to 'root'@'localhost' identified by  'root~2021' with grant option

修正后的语句:分开三次执行

  • 创建账户
create user 'root'@'localhost' identified by  'password'
  • 赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'localhost' with grant option
  • 改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;
原因分析 :此版的的mysql版本把将创建账户和赋予权限分开了。
创建账户::create user ‘用户名’@‘访问主机’ identified by ‘密码’;
赋予权限:grant 权限列表 on 数据库 to ‘用户名’@‘访问主机’ ;
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
这篇关于centos7安装MySQL8简易教程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!