由于之前买了阿里云的数据库一直没用,所以近期想在上面安装个数据库,结果在远程连接时遇到问题,所以在此记录下。
MySQL已经分支为两个版本了,一个是由Oracle维护的MySQL,另一个是由开源社区维护的MariaDB。在这里,我们选择yum安装MariaDB。
安装命令:
yum -y install mariadb mariadb-server
(ps:安装了两个组建 客户端mariadb,服务器组件mariadb-server)
启动/停止MySQL
systemctl start mariadb.service 启动
systemctl stop mariadb.service 关闭
systemctl restart mariadb.service 重新启动
systemctl enable mariadb.service 开机启动
systemctl disable mariadb.service 取消开机启动
这样MySQL就安装好了。
先停止MySQL并用安全模式启动MySQL
(ps:–skip-grant-tables 启动MySQL时不启动grant-tables,授权表)
(ps:–skip-networking 关闭MySQL的TCP/IP连接方式,跳过网络)
systemctl stop mariadb.service
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -uroot mysql
在MySQL中修改密码(ps:‘newpassword’ 为自己设置的新密码)
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit;
重启MySQL
systemctl restart mariadb.service
这样密码就设置成功了。
连接到MySQL检查中文:
show variables like '%char%'; //检查mysql变量
如果character_set_database和character_set_server的value为latin1,则要把它改成utf8。则更新/etc/my.cnf
cd /etc
vim my.cnf
添加内容:
[mysqld]
character-set-server=utf8
systemctl restart mariadb.service
再次登陆MySQL检查编码:
这样设置MySQL的中文编码就成功了。
在连接前先到阿里云的实例中配置安全组
点击配置规则
点击添加安全组规则
点击添加安全组规则,填入端口范围:3306/3306,授权对象:0.0.0.0/0,描述:MySQL数据库(可以自己随便写),最后点击确定即可。
连接到MySQL,选择mysql数据库进行操作:
MariaDB [(none)]> use mysql;
查看user,password,host这三个字段的权限分配情况:
MariaDB [mysql]> select user,password,host from user;
(通过以上输出可以看出数据库默认只允许用户root在本地服务器(localhost)上登录,不允许其他主机远程连接。)
允许用户root使用密码(123456)在任何主机上连接该数据库,并赋予该用户所有权限:
MariaDB [mysql]> grant all privileges on . to root@"%" identified by “123456”;
MariaDB [mysql]> flush privileges;
再执行 MariaDB [mysql]> select user,password,host from user; 新加入的行中的“%”就意味着任何主机都被允许连接数据库,这样数据库的访问权限就设置好了。
重启MySQL:
systemctl restart mariadb.service
打开Navicat,新建MariaDB连接,填入ip地址,用户名和密码,点击连接测试。成功时说明可以了,再点击确定。
以上就是在阿里云服务器安装Mariadb(MySQL)及Navicat远程连接的全部了。