安装Mariadb
本章内容
Mariadb的三种安装方式:
1、程序包管理器管理的程序包
2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
3、源代码:编译安装
MariaDB在一台机器上的多实例实现
Centos7 下定义MariaDB源Yum安装最新版本的MariaDB
一、安装数据库前准备
-
查看 虚机系统版本
[root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)
-
查看 虚机是否有自带MariaDB数据库
[root@localhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64
-
如果有MariaDB数据库,卸载自带的
[root@localhost ~]# yum remove -y mariadb-libs-5.5.68-1.el7.x86_64 # 再次查看 [root@localhost ~]# rpm -qa | grep mariadb
二、添加yum源,安装数据库
-
自定义一个安装源,参考:https://downloads.mariadb.org/mariadb/repositories/
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# vi MariaDB.repo # 增加以下内容: # MariaDB 10.5 CentOS repository list - created 2021-04-18 09:02 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.5/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
-
使用Yum 安装数据库 MariaDB
# 使用Yum 安装 [root@localhost ~]# sudo yum install -y MariaDB-server MariaDB-client # MariaDB-server:服务器端 # MariaDB-client :客户端,用于连接并操作Mysql服务器 # MariaDB-devel:包含开发首要的文件和一些静态库,可以不安装,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包
-
启动数据库
[root@localhost ~]# systemctl start mariadb # 开启 [root@localhost ~]# systemctl status mariadb # 查看状态 # 如果看到 : # Active: active (running) since Sun 2021-04-18 20:59:13 CST; 7s ago # 启动成功。
-
MariaDB安全配置(初始化)
[root@localhost ~]# mysql_secure_installation # 输入root(mysql)的密码。默认没有,直接回车 Enter current password for root (enter for none): # 是否切换到unix套接字身份验证[Y/n] Switch to unix_socket authentication [Y/n] n # 是否设置root密码 Change the root password? [Y/n] y # 如果选Y,就输入2次密码 New password: Re-enter new password: # 是否删除匿名用户?(就是空用户),建议删除 Remove anonymous users? [Y/n] y # 是否不允许远程root登录 y Disallow root login remotely? [Y/n] y # 是否删除test数据库 Remove test database and access to it? [Y/n] y # 是否加载权限使之生效 Reload privilege tables now? [Y/n] y
注:若后续想修改安全设置,使用命令:
mysql_secure_installation
-
测试登录
[root@localhost ~]# mysql -uroot -p123456 <- 123456设的密码 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 10.5.9-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)]> MariaDB [(none)]>show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.001 sec)
-
配置MairaDB的字符集
编辑/etc/my.cnf
[root@localhost ~]# vi /etc/my.cnf ...... # !includedir /etc/my.cnf.d 前添加下面内容 [mysqld] # 默认存储引擎 default-storage-engine = innodb # 独立表空间 innodb_file_per_table # 设置最大连接(用户)数 max_connections = 4096 # 排序规则 collation-server = utf8_general_ci # 服务器字符集 character-set-server = utf8 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/rn/mariadb/mariadb.pid
配置【my.cnf】后
# # This group is read both by the client and the server # use it for options that affect everything # [client-server] # # include *.cnf from the config directory # [mysqld] default-storage-engine = innodb innodb_file_per_table max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/rn/mariadb/mariadb.pid !includedir /etc/my.cnf.d ~
配置完成后 systemctl restart mariadb 重启服务。
三、用户基本操作
-
创建用户命令
create user username@localhost identified by 'password';
-
新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:
# 授予username用户在所有数据库上的所有权限: GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password'; #授予username只能执行 select 和 update 命令: GRANT SELECT, UPDATE ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password'; 格式: ALL PRIVILEGES :表示所有权限 *.* : 表示所有 数据库 所有表 'username'@'localhost' 表示从本地库主机登陆的username用户 用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。 identified by 'password' 表示 username用户的密码 with grant option 表示该用户可以将这些权限赋予其它用户 例子: mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
-
如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root 用户撤销刚才的权限,重新授权:
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost'; GRANT ALL PRIVILEGES ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password'; ———————————————— 版权声明:本文为CSDN博主「WarmthYan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_33187206/article/details/86543588
-
每当调整权限后,通常需要执行以下语句刷新权限
FLUSH PRIVILEGES; ``````js 权限列表: ALTER: 修改表和索引。 CREATE: 创建数据库和表。 DELETE: 删除表中已有的记录。 DROP: 抛弃(删除)数据库和表。 INDEX: 创建或抛弃索引。 INSERT: 向表中插入新行。 REFERENCE: 未用。 SELECT: 检索表中的记录。 UPDATE: 修改现存表记录。 FILE: 读或写服务器上的文件。 PROCESS: 查看服务器中执行的线程信息或杀死线程。 RELOAD: 重载授权表或清空日志、主机缓存或表缓存。 SHUTDOWN: 关闭服务器。 ALL: 所有权限,ALL PRIVILEGES同义词。 USAGE: 特殊的 "无权限" 权限。 用 户账户包括 "username" 和 "host" 两部分,后者表示该用户被允许从何地接入。tom@'%' 表示任何地址,默认可以省略。还可以是 "tom@192.168.1.%"、"tom@%.abc.com" 等。数据库格式为 db@table,可以是 "test.*" 或 "*.*",前者表示 test 数据库的所有表,后者表示所有数据库的所有表。 子句 "WITH GRANT OPTION" 表示该用户可以为其他用户分配权限。
-
远程工具测试
用第三方客户端连接成功,MariaDB安装成功!