Centos7安装MariaDB

本文详细介绍MariaDB数据库的安装步骤、配置字符集、添加用户及权限设置,以及如何开放3306端口和重置管理员密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装命令

yum -y install mariadb mariadb-server

安装完成MariaDB,首先启动MariaDB

systemctl start mariadb

设置开机启动

systemctl enable mariadb

接下来进行MariaDB的相关简单配置

mysql_secure_installation

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,

Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

初始化MariaDB完成,接下来测试登录

mysql -uroot -ppassword

完成。

 

2、配置MariaDB的字符集

文件/etc/my.cnf

vi /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

文件/etc/my.cnf.d/client.cnf

vi /etc/my.cnf.d/client.cnf

在[client]中添加

default-character-set=utf8

文件/etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

在[mysql]中添加

default-character-set=utf8

 全部配置完成,重启mariadb

systemctl restart mariadb

之后进入MariaDB查看字符集

MariaDB [(none)]> use mysql;   //选择mysql数据库进行操作
mysql> 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)

字符集配置完成。

3、添加用户,设置权限

创建用户命令

mysql>create user username@localhost identified by 'password';

直接创建用户并授权的命令

mysql>grant all on *.* to username@localhost indentified by 'password';

授予外网登陆权限 

mysql>grant all privileges on *.* to username@'%' identified by 'password';

授予权限并且可以授权

mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;

为其他主机远程连接数据库开放访问权限

MariaDB [mysql]> select user,password,host from user;  //查看user,password,host这三个字段的权限分配情况

+------+-------------------------------------------+-----------------------+

| user | password                                                                       | host                     |

+------+-------------------------------------------+-----------------------+

| root | *139EBD293A149D3C25DBD676D882BCBA5A00223E | localhost             |

| root |                                                                                        | localhost.localdomain |

| root |                                                                                        | 127.0.0.1             |

| root |                                                                                        | ::1                   |

|      |                                                                                           | localhost             |

|      |                                                                                           | localhost.localdomain |

+------+-------------------------------------------+-----------------------+

6 rows in set (0.00 sec)

//通过以上输出可以看出数据库默认只允许用户root在本地服务器(localhost)上登录,不允许其他主机远程连接。

MariaDB [mysql]> grant all privileges on *.* to root@"%" identified by "password";  

//上面这条语句将允许用户root使用密码(password)在任何主机上连接该数据库,并赋予该用户所有权限。
//%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为

//GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;


Query OK, 0 rows affected (0.01 sec)

最后配置好权限之后不应该忘记刷新使之生效
MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> select user,password,host from user;

+------+-------------------------------------------+-----------------------+

| user | password                                  | host                         |

+------+-------------------------------------------+-----------------------+

| root | *139EBD293A149D3C25DBD676D882BCBA5A00223E | localhost             |

| root |                                                                                        | localhost.localdomain |

| root |                                                                                        | 127.0.0.1             |

| root |                                                                                        | ::1                   |

|      |                                                                                           | localhost             |

|      |                                                                                           | localhost.localdomain |

| root | *139EBD293A149D3C25DBD676D882BCBA5A00223E | %          |  //这行中的“%”就意味着任何主机都被允许连接数据库

+------+-------------------------------------------+-----------------------+

7 rows in set (0.00 sec)

MariaDB [mysql]> 

这样数据库的访问权限就设置好了。

开放3306端口号:

在 Centos 7 中防火墙由 firewalld 来管理,而不是 iptables。

1. 查看防火墙状态

firewall-cmd --state            ## 结果显示为running或not running

2. 关闭防火墙firewall

systemctl stop firewalld.service
systemctl disable firewalld.service

3. 关闭防火墙firewall后开启

systemctl start firewalld.service

4. 开启端口

## zone -- 作用域
## add-port=80/tcp -- 添加端口,格式为:端口/通讯协议
## permanent -- 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent
## 开启3306端口后,workbench或naivcat 就能连接到MySQL数据库了

5. 重启防火墙

firewall-cmd --reload

 重置密码:

方法1:
  [root@localhost ~]# mysql
  MariaDB[(none)]> UPDATE mysql.user SET password = PASSWORD(‘newpassword’) WHERE USER = ‘root’;
  MariaDB[(none)]> FLUSH PRIVILEGES;

方法2:
  [root@localhost ~]# mysql
  MariaDB[(none)]> SET password=PASSWORD('newpassward');

方法3:
   [root@localhost ~]# mysqladmin -u root password 'newpassword'
  如果root已经设置过密码,采用如下方法
   [root@localhost ~]#mysqladmin -u root -p 'oldpassword' password 'newpassword'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值