此处采用的Linux系统为CentOS7。
安装mysql
- 下载并安装MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- yum安装
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安装MySQL服务器
[root@localhost ~]# yum -y install mysql-community-server
启动/关闭mysql服务
- 查看mysql运行状态
[root@localhost ~]# service mysqld status
如下图为未启动状态:
- 启动mysql服务
[root@localhost ~]# service mysqld star
启动后再查看mysql运行状态如下:
- 关闭mysql服务
[root@localhost ~]# service mysqld stop
设置mysql用户密码
- 获取root用户初始密码
刚安装的mysql只有root用户,此时需要先知道root用户的密码登录mysql才能进行其他操作。我们可以通过查看mysqld.log文件得到root用户的初始密码。
[root@localhost ~]# grep "password" /var/log/mysqld.log
上图中红框圈中的U_::lys+M2QB就是root用户的密码,注意是需要区分大小写的。
- 登录mysql的root用户
通过以下命令并输入密码后,就可以登录到root用户上。
[root@localhost ~]# mysql -u root -p
上图中红框位置既是需要输入密码的位置,注意输入密码是不会显示有任何填写的(已经输入密码成功但是该位置仍是空白)。所以需要自己记住输入什么了,输入完成按Enter即可,如果密码错误则会有错误提示。
- 重新设置root用户密码
在mysql中默认的密码规则等级是中级,即123456等这种简单的密码设置是不被允许会设置失败的。所以如果想要随意设置密码的话,可以先降低密码规则等级,再进行密码设置。
1.查看当前密码规则
mysql> show variables like 'validate_password%'
如上图所示,第一个红框显示的是密码的长度,第二个红框为密码等级,MEDIUM为中级。
2.修改密码规则
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
第一句为修改密码等级为低级,第二句为修改密码长度为6,修改后重新查看密码规则可以看到密码等级变为LOW。
3.设置root用户密码
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;
修改成功后退出mysql重新登陆则需要使用新的密码。
设置远程连接
- 查看linux的IP
[root@localhost ~]# ifconfig
- 检查IP是否可以在别的电脑ping通过,在windows系统的cmd中输入以下命令:
C:\Users\Administrator>ping 192.168.146.128
其中ping后面为linux系统的IP,出现以下界面则为通过。
如果ping失败,则需要检查linux系统所在网络是否有问题,原因比较多,诸如需要关闭防火墙等,最好交给熟悉网络方面的人员解决。
- 检查mysql端口是否对外开放
如果ping通过后,检查mysql端口,一般mysql默认的端口都是3306,如果不确定可以先登录mysql用以下语句查询。
mysql> show variables like '%port%';
如上图红框显示,我当前mysql的端口就是33006。接下来可以在windows系统的cmd通过telnet命令检查端口开放情况。
C:\Users\Administrator> telnet 192.168.146.128 3306
如果出现telnet不是内部命令的提示,则是因为你的windows系统telnet命令没有开启,可以如下图操作进行开启。
当前截图使用的是win10系统示例,其他系统的打开路径可能不太一样,具体可以自行百度。
- 在linux系统中开放mysql的端口
针对不同的linux系统,开放端口和查看端口的命令不太一样。以我所使用的CentOS7系统为例,其相关命令如下:
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --permanent --list-port
第一句为开放对应窗口,第二句为查看已经开放的端口,操作结果如下图所示。
其他系统可以尝试如下命令,具体博主没有试过,只能等待有缘人去尝试了。
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
第一句为打开iptables文件,第二句为写入该文件的语句,最后保存退出文件(按ESC,然后输入:wq),再输入service iptables restart重启防火墙即可。
开放mysql端口成功后,再在windows系统的cmd中使用telnet即可成功连接。
- 给访问mysql数据库的用户权限
登录mysql账户,在mysql数据库中输入以下语句可以给root开通访问权限。
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Qqaz_123' with grant option;
mysql> flush privileges;
第一句中,’%'表示所有电脑都可以连接,如果要直接只有特定电脑可以连接的话,可以把%换成对应电脑的IP。'Qqaz_123’代表连接时所使用的密码,需要满足密码规则,奇怪的是我前面已经调整过mysql密码规则为低级了,然后此处仍是需要满足原有的中级规则,原因后面再研究。
如果不想直接使用root账户,可以直接自己创建一个新的用户并进行授权。
mysql> create user 'test'@'%' identified by 'Qqaz_123';
mysql> grant all on *.* to 'test'@'%';
mysql> flush privileges;
- 连接数据库
通过以上的操作,我们就可以在其他系统中远程连接该数据库了,比如用navicat工具进行连接,如下图可以看到连接成功。