centos7 安装Mariadb
mariadb 数据库管理系统是 mysql 的一个分支,主要由开源社区在维护,采用 gpl 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 mysql 后,有将 mysql 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。mariadb完全兼容mysql,使用方法也是一样的
有的centos7已经默认安装了mariadb,可以查看自己的有没有安装,没有安装的再进行安装,已经安装了可以不用安装也可以卸载了重装。卸载命令 yum remove mariadb-server
1 [root@mini ~]# cat /etc/redhat-release 2 centos linux release 7.5.1804 (core) 3 [root@mini ~]#
1、安装mariadb
通过yum安装就行了。简单快捷,安装mariadb-server,默认依赖安装mariadb,一个是服务端、一个是客户端。
[root@mini ~]# yum install mariadb-server
2、配置mariadb
1)安装完成后首先要把mariadb服务开启,并设置为开机启动
[root@mini ~]# systemctl start mariadb # 开启服务 [root@mini ~]# systemctl enable mariadb # 设置为开机自启动服务
2)首次安装需要进行数据库的配置,命令都和mysql的一样
[root@mini ~]# mysql_secure_installation
3)配置时出现的各个选项
enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车 set root password? [y/n] # 设置密码,y new password: # 新密码 re-enter new password: # 再次输入密码 remove anonymous users? [y/n] # 移除匿名用户, y disallow root login remotely? [y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录 remove test database and access to it? [y/n] # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要 reload privilege tables now? [y/n] # 重新加载权限表,y。或者重启服务也许
4)测试是否能够登录成功,出现 mariadb [(none)]> 就表示已经能够正常登录使用mariadb数据库了
[root@mini ~]# mysql -u root -p enter password: welcome to the mariadb monitor. commands end with ; or \g. your mariadb connection id is 8 server version: 5.5.60-mariadb mariadb server copyright (c) 2000, 2018, oracle, mariadb corporation ab and others. type 'help;' or '\h' for help. type '\c' to clear the current input statement. mariadb [(none)]>
3、设置mariadb字符集为utf-8
1)/etc/my.cnf 文件
在 [mysqld] 标签下添加
init_connect='set collation_connection = utf8_unicode_ci' init_connect='set names utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake
2)/etc/my.cnf.d/client.cnf 文件
在 [client] 标签下添加
default-character-set=utf8
3)/etc/my.cnf.d/mysql-clients.cnf 文件
在 [mysql] 标签下添加
default-character-set=utf8
4)重启服务
[root@mini ~]# systemctl restart mariadb
5)进入mariadb查看字符集
mariadb [(none)]> show variables like "%character%";show variables like "%collation%"; +--------------------------+----------------------------+ | variable_name | value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.01 sec) +----------------------+-------------------+ | variable_name | value | +----------------------+-------------------+ | collation_connection | utf8_general_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec) mariadb [(none)]>
mariadb [(none)]> show variables like "%character%";show variables like "%collation%"; +--------------------------+----------------------------+ | variable_name | value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) +----------------------+-----------------+ | variable_name | value | +----------------------+-----------------+ | collation_connection | utf8_unicode_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +----------------------+-----------------+ 3 rows in set (0.00 sec) mariadb [(none)]>
4、远程链接mariadb数据库
mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库
1)出现以下的情况是因为链接被防火墙拦截了。
解决方法:
① 关闭防火墙 systemctl stop firewalld
[root@mini ~]# systemctl stop firewalld
② 在不关闭防火墙的情况下,允许某端口的外来链接。步骤如下,开启3306端口,重启防火墙
[root@mini ~]# firewall-cmd --query-port=3306/tcp # 查看3306端口是否开启 no [root@mini ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开启3306端口 success [root@mini ~]# firewall-cmd --reload # 重启防火墙 success [root@mini ~]# firewall-cmd --query-port=3306/tcp # 查看3306端口是否开启 yes
2)出现以下的情况很正常,因为mariadb拒绝远程登陆
3)先查看mysql数据库中的user表
[root@mini ~]# mysql -u root -p # 先通过本地链接进入数据库 mariadb [(none)]> use mysql; mariadb [mysql]> select host, user from user; +-----------+------+ | host | user | +-----------+------+ | 127.0.0.1 | root | | ::1 | root | | mini | root | +-----------+------+ 3 rows in set (0.00 sec)
4)将与主机名相等的字段改为 "%" ,我的主机名为mini,
mariadb [mysql]> update user set host='%' where host='mini'; query ok, 1 row affected (0.00 sec) rows matched: 1 changed: 1 warnings: 0 mariadb [mysql]> select host, user from user; +-----------+------+ | host | user | +-----------+------+ | % | root | | 127.0.0.1 | root | | localhost | root | +-----------+------+ 3 rows in set (0.00 sec)
5)刷新权限表,或重启mariadb服务,一下二选一即可
mariadb [mysql]> flush privileges; query ok, 0 rows affected (0.00 sec)
[root@mini ~]# systemctl restart mariadb
注意:刷新权限表是在数据库中,重启服务是在外部命令行中
6)重新远程链接mariadb
上一篇: 小米日本为宣传视频内容不当道歉
推荐阅读
-
php安装xdebug/php安装pear/phpunit详解步骤(图)
-
Eclipse的PHP插件PHPEclipse安装和使用
-
python安装numpy&安装matplotlib& scipy的教程
-
Python安装Numpy和matplotlib的方法(推荐)
-
windows7下安装php的php-ssh2扩展教程
-
ubuntu下安装程序的三种方法总结(推荐)
-
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
-
vue的安装及element组件的安装方法
-
安装 VS2005 SP1 有关问题的解决办法
-
详解Python网络框架Django和Scrapy安装指南