服务器中安装配置MYSQL数据库完整教程
第一步: 确保服务器系统处于最新状态(这步操作可有可无)
[root@localhost ~]# yum -y update
如果显示以下内容说明已经更新完成
Replaced:
grub2.x86_64 1:2.02-0.64.el7.centos grub2-tools.x86_64 1:2.02-0.64.el7.centos
Complete!
第二步: 重启服务器(这步操作也可以跳过)
[root@localhost ~]# reboot
第三步: 首先检查是否已经安装,如果已经安装先删除以前版本,以免安装不成功
[root@localhost ~]# rpm -qa | grep mysql
或
[root@localhost ~]# yum list installed | grep mysql
如果安装了的话,就使用下面这条命令删除原先的mysql,举例如下:
rpm -e --nodeps mysql-libs-5.1.73-5.e16_6.i686
第四步: 下载MySql安装包
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
或者
[root@localhost ~]# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
第五步: 安装MySql
[root@localhost ~]# yum install -y mysql-server
或
[root@localhost ~]# yum install mysql-community-server
如果显示以下内容说明安装成功
第六步: 设置开机启动mysql
systemctl enable mysqld.service
第七步: 检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld
如果显示以下内容说明已经完成自动启动安装
mysqld.service enabled
第八步: 设置开启服务
systemctl start mysqld.service
第九步: 查看MySql默认密码
grep 'temporary password' /var/log/mysqld.log //注意不同版本的位置可能会不一样哦,我的是 /var/log/mysql/mysqld.log
第十步: 登陆MySql,输入用户名和密码
mysql -uroot -p //密码也就是第九步里面查看到的默认密码
第十一步: 修改当前用户密码 注意看下面的报错
mysql>SET PASSWORD = PASSWORD('alliance'); //但是这样会报错的,具体错误看下面
You have an error in your SQL syntax; check the manual that corresponds to your MySQL se rver version for the right syntax to use near 'PASSWORD('alliance')' at line 1
你应该用的mysql最新版本,百度了一下,SET PASSWORD = PASSWORD(‘newpasswd’);这种方式会出错!!!!
不要再看你写错了没,别再ctrl+v 回车啦~
alter user 'root'@'localhost' identified by '123'; 或set password for 'root'@'localhost'=password('123');
我的8.0.21的版本mysql 没问题可以用
-> flush privileges;
以防万一刷新一下服务,这句表示从mysql数据库的grant表中重新加载权限数据; 这儿开始就结束了下载创建账户设置密码
接下来我们看权限
第一步:切换到mysql数据库
use mysql
第二步:现有用户及连接权限
-> select User,authentication_string,Host from user
第三部:赋予权限
mysql是为了安全考虑所以初始的时候远程是不能访问的,只能本地localhost,127.0.0.1访问。(就相当于远程只能登录mysql这个工具,却不能以某种用户的身份访问里面的数据(我们平时做项目都是以root用户的身份访问指定数据库数据))
第一种方法:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;
我的mysql是8.0.21的会报以下错误
ERROR 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 '123456' WITH GRANT OPTION' at line 1
第二种方法:
换一种赋予权限的方式,成功
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
除了代码修改user表中的user=root的host为%
另外mysql配置文件(/etc/mysql/mysql.cnf.d/mysqld.cnf)中bind-adress也需要修改为0.0.0.0或者注释掉该行
bind-address =127.0.0.1
改成
bind-adress =0.0.0.0
或者
#bind-address =127.0.0.1
注意:
我的8.0版本找不到mysql.cnf文件,所以没有进行更改,后来也是可以连接成功的!
!!!如果是阿里云的服务器记得去云服务器ECS-安全组-添加安全组规则-入方向-添加3306 mysql的端口 重启一下
防火墙开启
1、开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、重启防火墙
firewall-cmd --reload
查看已经开放的端口:
firewall-cmd --list-ports
无论如何
运行
select user,host,plugin from user;
观察到你添加的user有如下属性才可以连接成功
host %
plugin mysql_native_password
如果你的plugin 为 caching_sha2_password 属性
修改加密规则
mysql> alter user 'wangwang'@'%' identified by '1qaz!QAZ' password expire never;
更新用户密码
mysql> alter user 'wangwang'@'%' identified with mysql_native_password by '1qaz!QAZ';
刷新一下
mysql> flush privileges;
第四步:重启mysql启动,让修改生效
service mysqld restart