网上找了一大堆安装教程都不行,最后用这个成功了。
安装mysql有两种:
1-可以使用yum安装,
2-可以自己下载安装包安装mysql,
腾讯云的centos系统自带了yum,所以用yum安装方便点
安装步骤
1-查看yum源中是否有mysql
|
2-发现没有想要的mysql-server服务,只有php和其他的mysql安装包
3-下载mysql的repo源
|
4-安装mysql-community-release-el7-5.noarch.rpm包
|
5-安装mysql服务
|
6-登录mysql并修改mysql的密码
|
登录时有可能报这样的错:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
|
7-重启mysql
|
8-重置密码
1 2 3 4 |
|
此时安装成功,但是navicat还是连接不上的:还要设置防火墙端口号
直接上方法:
首先配置CentOS下防火墙iptables规则:
# vim /etc/sysconfig/iptables
向其中加入下列规则:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
说明:防火墙开放http用的80端口和连接MySql的3306端口。
# service iptables restart
然后配置MySQL允许远程登陆:
先在CentOS中连接Mysql数据库
# mysql -uroot -proot
执行
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY'123456' WITH GRANT OPTION;
再执行下
> flush privileges;
不用重启MySql服务。最后配置工作完成,打开Windows下的Navicat就可以直接连接到CentOS下的数据库了。
2019/04/23今天连接mysql突然出现这种情况,之前用的好好的,找了半天才解决,记录一下防止下次再遇到忘记。
Access denied for user 'root'@'localhost' (using password:yes)
解决如下:
1.停止mysql服务
systemctl stop mysqld.service
2.修改配置文件无密码登录
vim /etc/my.cnf
在最后加上
skip-grant-tables
保存
3.启动mysql
systemctl start mysqld.service
4.登录mysql
mysql -u root
注意这里不要加-p
5.修改密码,mysql5.7用此语法
use mysql;
update mysql.user set authentication_string=password('123456') where user='root' ;
6.回到第二部把刚加的那句删掉
保存,重启mysql就可以了
#########################################################################
其实默认安装完了mysql后或在日志中生成一个默认的密码 /var/log/mysqld.log 中
拿到默认密码后登录mysql 进行密码重新设置
set pssword=password('your password');
如果密码级别与默认的级别要求不符时候会报
Your password does not satisfy the current policy requirements
此时需要修改级别与最小的默认密码位数
- set global validate_password_policy=0;
- set global validate_password_length=4;
然后在进行设置密码就好了
###################
远程连接时1130错误
- mysql;use mysql;
- mysql;select 'host' from user where user='root';
- mysql;update user set host = '%' where user ='root';
- mysql;flush privileges;
- mysql;select 'host' from user where user='root';