MariaDB数据库管理系统
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎
MariaDB服务的初始化安全设定
yun install mariadb 下载mysql
ot@shareserver ~]# systemctl start mariadb 开启服务mysql
[root@shareserver ~]# mysql_secure_installation 初始化设置
[root@shareserver ~]# netstat -antlupe | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 30588 1925/mysqld
[root@shareserver ~]# vim /etc/my.cnf
10 skip-networking=1 隐藏网络端口
ot@shareserver ~]# netstat -antlupe | grep mysql 查看网络端口
[root@shareserver ~]# mysql -uroot -p root用户登陆
Enter password:
1.下载mariadb服务,并启用
2.数据库程序初始化,
#设置root管理员在数据库中的密码值(注意,该密码非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。
#设置root管理员在数据库中的专有密码。
#随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务安全性。
#删除默认的测试数据库,取消测试数据库的一系列访问权。
#刷新授权列表,让初始化的设定立即生效。
3.隐藏数据库的网络端口,因为数据库一般为公司核心,所以为了安全起见,我们要隐藏他的网络端口
#可以看到数据库的网络端口为3306
#编辑配置文件vim /etc/my.cnf
在第10行加入
skip-networking=1 隐藏网络端口
#重新启动mariadb服务
再次查看端口时发现网络端口被隐藏
4.我们以root用户登录数据库,密码为前面我们给root用户在数据库的专有密码
.注意在数据库中,命令以分号(;)结尾
.命令大小写均可,不过为了标准,我们选择大写
数据库中数据表的建立以及管理
常用命令有
MariaDB [(none)]> SHOW DATABASES; ####列出库
MariaDB [(none)]> CREATE DATABASE westos; ######建立库
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> USE westos; #####进入库
SHOW TABLES ####列出表
MariaDB [westos]> CREATE TABLE linux ( #####建立表
-> username varchar(50) not null,
-> password varchar(50) not null
-> );
Query OK, 0 rows affected (0.09 sec
MariaDB [westos]> DESC linux; #####查看表结构
MariaDB [westos]> INSERT INTO linux VALUES ('lee','123'); ####插数据到linux表中
MariaDB [westos]> SELECT * FROM linux; 查看linux表中的内容
更改
MariaDB [westos]> SHOW TABLES; 列出表
MariaDB [westos]> ALTER TABLE linux RENAME userdate; 表单的重命名
MariaDB [westos]> ALTER TABLE linux ADD age varchar(4); 在表单中插入表头
MariaDB [westos]> ALTER TABLE linux DROP age; 在表单中删除表头
MariaDB [westos]> ALTER TABLE linux ADD age varchar(4) AFTER username; 在username表头后添加age表头
MariaDB [westos]> UPDATE linux SET age='18' WHERE username='qi' ; 更新表单中的数据,将用户qi的age栏填入18
MariaDB [westos]> DELETE FROM linux WHERE username='qi'; 删除表中的用户qi
MariaDB [westos]> DROP TABLE linux; 删除表linux
MariaDB [westos]> DROP DATABASE westos; 删除westos库
1.列出数据库
2.建立westos库
3.进入库
4.建立表Linux的格式,表头 username password
5.查看表结构
6.在linux表中插入数据
7.查看linux表内容
8.列出westos库中表单
9.将westos库中的linux表改名为userdate
授权及管理用户
MariaDB [(none)]> CREATE USER lee@localhost identified by'redhat'; 让lee用户可以访问数据库
MariaDB [(none)]> SELECT User,Host FROM mysql.user; 列出经数据库授权的用户
MariaDB [(none)]> SHOW GRANTS FOR lee@localhost; 查看lee用户在数据库中享有的特权
MariaDB [(none)]> GRANT SELECT on westos.* TO lee@localhost; 给lee用户在westos中查询权限
MariaDB [(none)]> SHOW GRANTS FOR lee@localhost;
MariaDB [(none)]> GRANT DROP on westos.* TO lee@localhost; 给lee用户在westos中删除权限
MariaDB [(none)]> REVOKE DROP on westos.* TO lee@localhost; 取消lee用户在westos中的删除权限
MariaDB [(none)]> DROP USER lee@localhost 取消lee用户在数据中的授权
1.在数据库中给本地lee用户认证特权,并设置密码为redhat
2.查看认证的用户列表
3.查看用户在数据库中享有的权限
4.给lee用户权限,如SELECT,UPDATE,DELETE,INSERT,DROP,可以单独给也可以一次给几个权限
5.删除权限,可以单独删一个,也可以单独删几个,此处我们删除了lee用户在westos库中的DROP权限
6.删除认证的本地用户lee
数据库的备份
root@shareserver ~]# mysqldump -uroot -pwestos --all-databases > /mnt/alldata.sql
mysqldump -uroot -pwestos --all-databases --no-data / -no-data表示只备份框架,不备份数据
[root@shareserver ~]# mysqldump -uroot -pwestos westos > /mnt/westos.sql
[root@shareserver ~]# mysql -uroot -pwestos -e "DROP DATABASE westos;"
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
[root@shareserver ~]# mysql -uroot -pwestos westos < /mnt/westos.sql
ERROR 1049 (42000): Unknown database 'westos'
恢复方式一
[root@shareserver ~]# mysql -uroot -pwestos -e "CREATE DATABASE westos;"
[root@shareserver ~]# mysql -uroot -pwestos westos < /mnt/westos.sql
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| westos |
+--------------------+
恢复方式二
[root@shareserver ~]# vim /mnt/westos.sql
21 CREATE DATABASE westos;
22 USE westos;
[root@shareserver ~]# mysql -uroot -pwestos < /mnt/westos.sql
[root@shareserver ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
备份
1.将数据库中所以的库连同数据一块备份到/mnt/alldata.sql
2.将数据库中westos库的全部数据备份到/mnt/westos.sql
3.为了试验,我们先删除westos库,可以直接在用命令进行操作,格式如下
恢复
恢复是,直接将备份的资料传到数据空中是行不通的,因为westos库未创建
恢复方式1
先在数据库中建立westos库,在进行恢复
具体命令命令框已将写出
恢复方式二
修改备份的文件,此处我们修稿在/mnt/westos.sql 写入创建westos库的命令
再进行恢复,此处就不用加westos了
数据库密码管理
用到的命令
修改root密码
[root@shareserver ~]# mysqladmin -uroot -pwestos password lee
当root密码忘记时
[root@shareserver ~]# systemctl stop mariadb.service
root@shareserver ~]# mysqld_safe --skip-grant-tables &
[root@shareserver ~]# mysql
MariaDB [(none)]> SELECT User,Password FROM mysql.user;
+------+-------------------------------------------+
| User | Password |
+------+-------------------------------------------+
| root | *9BB439A3A652A9DAD3718215F77A7AA06108A267 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+------+-------------------------------------------+
MariaDB [(none)]> UPDATE mysql.user SET Password=password('westos') WHERE User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
MariaDB [(none)]> SELECT User,Password FROM mysql.user;+------+-------------------------------------------+
| User | Password |
+------+-------------------------------------------+
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
| root | *28C1E2BE21B45562A34B6CC34A19CFAFC2F88F96 |
+------+-------------------------------------------+
root@shareserver ~]# ps aux | grep mysql
root 3387 0.0 0.4 235704 4008 pts/1 S+ 02:00 0:00 mysql -ulee -px xxxx
root 4043 0.0 0.1 113252 1568 pts/0 S 02:53 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql 4198 0.0 9.7 859068 94432 pts/0 Sl 02:53 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 4283 0.0 0.0 112640 932 pts/0 R+ 02:59 0:00 grep --color=auto mysql
[root@shareserver ~]# kill -9 3387
[root@shareserver ~]# kill -9 4043
[root@shareserver ~]# kill -9 4198
[root@shareserver ~]# systemctl start mariadb
1.修改root用户的认证密码(已知root密码,只是修改)
2.当root密码忘记时,解决方法
#1.关闭服务,输入命令使启动时跳过安全认证项
#2.输入mysql可直接进入数据库
#3.查看认证用户以及密码
#4.更新root为westos,注意要给修改的密码加括号,这样查看用户密码是就是加密字符更安全否则为明文
可以看到修改前后加密字符不一样
4.关闭mysql正在运行的进程,并重新启动服务,密码就修改完成
安装phpmyadmin数据库图形管理
phpMyAdmin
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。
用到命令
[root@shareserver ~]# yum install php php-mysql.x86_64 -y 下载二个软件
[root@shareserver ~]# yum install httppd 下载httpd
[root@shareserver html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@shareserver html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@shareserver html]# ls
phpMyAdmin-3.4.0-all-languages phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@shareserver html]# rm phpMyAdmin-3.4.0-all-languages.tar.bz2
rm: remove regular file ‘phpMyAdmin-3.4.0-all-languages.tar.bz2’? y
[root@shareserver html]# mv phpMyAdmin-3.4.0-all-languages/ westos
[root@shareserver html]# ls
westos
[root@shareserver html]# cd westos/
[root@shareserver westos]# cp config.sample.inc.php config.inc.php
[root@shareserver westos]# vim config.inc.php
[root@shareserver westos]# less Documentation.txt
17 $cfg[''] = 'ba17c1ec07d65003';
ot@shareserver westos]# systemctl start httpd.service
在网页上 172.25.254.149/westos
1.安装php和php-mysql两个软件
2.因为我们要在网页应用phpmyadmin,所以我们要安装httpd服务
3.在网上下载一个phpmyadmin软件的安装包,此处我们已经下载,我们将它考到我们的虚拟机主机里面
4.将安装包移动到/var/www/html下并进行解压
5.删除以前的安装包,为了将来在网页上查看方便,我们将解压的软件重命名
6.启用hpptd,关闭火墙
7.在网页上输入ip/刚才的重命名,进入就可以使用该图形管理了
8.有的版本会出现图形起不来的情况,解决:
1.进入软件,cp config.sample.inc.php config.inc.php 拷贝文件到config.inc.php
2.编辑vim config.inc.php,在17行写入字符串,该字符串在less Documentation.txt中找
17 $cfg[’’] = ‘ba17c1ec07d65003’;
3.重启hpttd服务,便可以成功