一、初始化mariaDB服务程序:
yum install mariadb mariadb-server //安装mariaDB
systemctl start mariadb //启动mariadb
systemctl enable mariadb //添加到开机启动项中
初始化数据库服务程序:
[root@mysql-server ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):当前数据库密码为空,直接回车
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y 设置root用户的数据库密码
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y 删除匿名账号
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y 禁止root用户从远程登陆
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y 删除test库,并取消对其的访问权限
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y 刷新授权表,让初始化后的设定立即生效
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
设置防火墙对数据库服务的允许策略:
[root@mysql-server ~]# firewall-cmd --permanent --add-service=mysql
success
[root@mysql-server ~]# firewall-cmd --reload
success
使用root用户登陆到数据库中:
[root@mysql-server ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 15
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]>
MariaDB [(none)]> set password = password('123456'); //修改当前用户的数据库密码
二、管理数据库与表单数据:
1、创建一个新的数据库用户::CREATE USER 用户名@主机名 IDENTIFIED BY '密码';
MariaDB [(none)]> create user cw@localhost IDENTIFIED BY '123456';
MariaDB [mysql]> show databases; //查看数据库
MariaDB [(none)]> use mysql; //进入到mysql数据库
MariaDB [mysql]> select host,user,password from user where user='cw';
//查看新创建的用户名、主机、姓名与密码信息
2、修改新建用户权限:(默认权限只能访问)
数据库GRANT命令的授权操作常用方案:
命令 |
作用 |
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 |
对某个特定数据库中的特定表单给予授权。 |
GRANT 权限 ON 数据库.* TO 用户名@主机名 |
对某个特定数据库中的所有表单给予授权。 |
GRANT 权限 ON *.* TO 用户名@主机名 |
对所有数据库及所有表单给予授权。 |
GRANT 权限 1,权限 2 ON 数据库.* TO 用户名@主机名 |
对某个数据库中的所有表单给予多个授权。 |
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 |
对所有数据库及所有表单给予全部授权 |
举例:
MariaDB [(none)]> GRANT SELECT,UPDATE,DELETE,INSERT on mysql.user to cw@localhost;
//给予cw用户对mysql数据库的user表单查询、更新、删除、插入权限;
MariaDB [(none)]> show grants for cw@localhost;
//查看cw用户当前的授权
MariaDB [(none)]> revoke SELECT,UPDATE,DELETE,INSERT on mysql.user from cw@localhost;
//移除cw用户对musql数据库的user表单查询、更新、删除、插入权限
3、创建数据库与表单
常用的数据库表单管理命令:
用法 |
作用 |
CREATE database 数据库名称; |
创建新的数据库 |
DESCRIBE 表单名称; |
描述表单 |
UPDATE 表单名称 SET attribute=新值 WHERE attribute>原始值; |
更新表单中的数据 |
USE 数据库名称; |
指定使用的数据库 |
SHOW databases; |
显示当前已有的数据库 |
SHOW tables; |
显示当前数据库中的表单 |
SELECT * FROM 表单名称; |
从表单中选中某个记录值。 |
DELETE FROM 表单名 WHERE attribute=值; |
从表单中删除某个记录值 |
MariaDB [mysql]> create database linuxprobe;
MariaDB [mysql]> use linuxprobe;
MariaDB [linuxprobe]> create table mybook(name char(15),price int,pages int);
MariaDB [linuxprobe]> describe mybook; //查看mybook表头信息
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name | char(15) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
| pages | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
4、管理表单数据:
向表单中插入新的书籍数据:
MariaDB [linuxprobe]> INSERT INTO mybook(name,price,pages) VALUES('linuxprobe','60',518);
MariaDB [linuxprobe]> select * from mybook; //查看表中数据
+------------+-------+-------+
| name | price | pages |
+------------+-------+-------+
| linuxprobe | 60 | 518 |
+------------+-------+-------+
1 row in set (0.01 sec)
MariaDB [linuxprobe]> update mybook set price=55; //将价格修改为55元;
MariaDB [linuxprobe]> delete from mybook; //删除书籍表单中的内容;
5、where命令用于数据库匹配查询:
参数 |
作用 |
= |
相等 |
<>或!= |
不相等 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
BETWEEN |
在某个范围内 |
LIKE |
搜索一个例子 |
IN |
在列中搜索多个值 |
MariaDB [linuxprobe]> select * from mybook;
+-------------+-------+-------+
| name | price | pages |
+-------------+-------+-------+
| linuxprobe1 | 55 | 518 |
| linuxprobe2 | 60 | 518 |
| linuxprobe3 | 70 | 518 |
| linuxprobe4 | 75 | 518 |
| linuxprobe5 | 80 | 518 |
+-------------+-------+-------+
5 rows in set (0.00 sec)
查看价格大于75的书籍:
MariaDB [linuxprobe]> select * from mybook where price>75;
搜索价格不等于80的书籍:
MariaDB [linuxprobe]> select * from mybook where price<>80;
MariaDB [linuxprobe]> select * from mybook where price!=80;
6、数据库备份与恢复:
mysqldump命令用于备份数据库数量,格式为“mysqldump [参数] [数据库名称]”。
参数 |
作用 |
-u |
数据库的用户名称 |
-p |
密码提示符 |
--no-data |
至备份数据库的描述结构,而不要数据 |
--local-all-tables |
备份完成后将不再允许修改数据 |
将书籍数据库文件导出到家目录:
[root@mysql-server ~]# mysqldump -uroot -p123456 linuxprobe > /root/linuxprobeDB_bak.sql
删除书籍数据库:
MariaDB [(none)]> drop database linuxprobe;
创建一个空的数据库:
MariaDB [(none)]> create database linuxprobe_bak;
导入刚刚备份的数据库至linuxprobe_bak库中:
[root@mysql-server ~]# mysql -uroot -p123456 linuxprobe_bak < /root/linuxprobeDB_bak.sql