在部署linux环境(CentOS7.4+Nginx+MySQL)时,安装使用mySQL数据库时遇到了如下问题:一、安装了一个mySQL数据库,执行systemctl start mysqld, 发现数据库没起来,安装失败;二、在windows系统上使用Navicat连接mySQl数据库失败。现将解决方法总结如下,
一、完全删除之前安装的mySQL及相关文件:
yum remove mysql mysql-server mysql-libscompat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
使用以上命令删除mySQL及相关文件
rpm -qa|grep mysql
查看是否还有mysql软件,有的话继续删除即可。
二、下载并安装MySQL官方的 Yum库
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用以上命令直接下载安装使用的Yum库,大概25KB的样子,然后就可以直接yum安装了。
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb(在CentOS中默认安装了MariaDB数据库,mysql数据库安装完成之后可以直接覆盖掉MariaDB)。
至此MySQL就安装完成了,然后是对MySQL的一些设置。
三、MySQL数据库设置
Systemctl start mysqld
启动MySQL
systemctl status mysqld.service
查看MySQL运行状态,运行状态如图
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
如下命令进入数据库:
mysql -uroot -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost'IDENTIFIED BY 'new password';
四、卸载yum库
因为安装了Yum库,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch
此时解决如上问题。
在windows操作系统上使用navicat连接mySQLs数据库时提示如下错误
需要执行如下操作:
在防火墙中开启80端口、3306端口
vim/etc/sysconfig/iptables
通过以上命令将如下文字编辑到iptables文件中
-A INPUT -m state –state NEW -m tcp -ptcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -ptcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多人把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
Systemctl restartiptables
重启防火墙
使用root用户登录linux,更改允许登陆的IP地址范围
Mysql –u root –p
使用以上命令登陆数据库
mysql>grant all privileges on *.* to 'root'@'%' identified by 'rootpasswd' with grant option;
以上命令允许所有用root用户输入密码登陆该数据库。
此时解决如上问题。