基于Linux的mariadb数据库管理
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。安装[root@shareserver ~]# yum search mariadb[root...
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
安装
[root@shareserver ~]# yum search mariadb
[root@shareserver ~]# yum install mariadb-server.x86_64 -y
[root@shareserver ~]# systemctl start mariadb
mysql配置文件
/etc/my.cnf ##主配置文件
/etc/my.cnf.d/server.cnf ##子配置文件(内容为空)
关闭检测端口
默认情况下,数据库的网络接口是打开状态,任何人都可以访问该数据库,这是极不安全的
可以看到默认端口,表示数据库安装后默认裸露在互联网上
为保证安全,需要关闭此接口。
[root@shareserver ~]# vim /etc/my.cnf ##修改主配置文件
skip-networking=1 ##添加此语句,设置检测时略过mysql,使监听端口无法监测到mysql的端口
[root@shareserver ~]# systemctl restart mariadb
再次监听端口,可以看出无法监测到mysql端口
安全初始化
[root@shareserver ~]# mysql_secure_installation ##设置myaql登陆
Set root password? [Y/n] ##为root设置登陆密码
New password:
Re-enter new password:Remove anonymous users? [Y/n] y ##禁止匿名用户登陆
Disallow root login remotely? [Y/n] y ##禁止超级用户远程登陆
Remove test database and access to it? [Y/n] y ##禁止使用并使用数据测试
Reload privilege tables now? [Y/n] y ##重新加载权限列表
root用户密码登陆数据库,回车,键入密码,登陆成功。
[root@shareserver ~]# mysql -uroot -p
数据库的查询
mysql命令:
mysql ##无密码登陆数据库
mysql -uroot -p ##root用户登陆数据库
注意:进入数据库后对数据库操作的任何命令必须以“;”结尾
SHOW DATABASES; ##显示数据库中所有的库
USE mysql; ##进入mysql数据库
SHOW TABLES; ##显示当前数据库的所有表
SELECT * FROM user; ##显示user表中所有字段的数据(字段指列)
SELECT Host,User FROM user; ##显示user表中Host和User字段的数据
SELECT Host,User from user WHERE Host='::1'; ##显示user表中Host='::1'的Host和User字段的数据
WHERE 后面gender是查询的条件,格式要用‘’
SELECT Host,User from user WHERE Host='::1' AND User='root'; ##显示user表中Host='::1' 且User='root'的Host和User字段的数据 WHERE后面的条件可以写多个,用AND连接
DESC user; ##查看user表的数据结构
quit; ##退出数据库
数据库的管理
<1>数据库以及表的创建
MariaDB [mysql]> CREATE DATABASE westos; ##新建数据库westos
MariaDB [mysql]> USE westos; ##使用数据库westos
MariaDB [westos]> CREATE TABLE linux( ##在数据库westos中新建表格linux,包括username和password两个字段
-> username varchar(15) not null, ##指定表格linux中字段username的字符长度不可超过15个,字符类型为varchar,并且不许为空
-> password varchar(50) not null ##指定表格linux中字段password的字符长度不可超过50个,字符类型为varchar,并且不许为空-> );
查看新建数据库是否成功
查看新建表是否成功
查看新建表格的数据结构
<2>向表格中插入内容
MariaDB [westos]> INSERT INTO linux VALUES ('zhang','123');
MariaDB [westos]> INSERT INTO linux VALUES ('westos','456');
查看是否成功向表格中插入内容成功
<3>更改
更改表中某一用户的密码
MariaDB [westos]> UPDATE linux SET password='111' WHERE username='zhang'; 将linux表中用户zhang的密码改为111
更改表中某一用户的密码并加密
MariaDB [westos]> UPDATE linux SET password=password('123') WHERE username='westos';将linux表中用户westos的密码改为123并加密
向表中添加字段
MariaDB [westos]> ALTER TABLE linux ADD class varchar(20); ##向linux表中添加class字段,指定该字段的字符长度不可超过20个,不指定字段添加位置时默认将字段添加到最后
MariaDB [westos]> ALTER TABLE linux ADD age varchar(20) AFTER username; ##向linux表中添加age字段,指定该字段的字符长度不可超过20个,并且将该字段添加到username字段后面
删除表中的某一字段
MariaDB [westos]> ALTER TABLE linux DROP class; ##删除linux表中的class字段
更改表的名称
MariaDB [westos]> ALTER TABLE linux RENAME redhat; ##将表linux名字改为redht
<4>删除
删除表中某一对象
MariaDB [westos]> DELETE FROM redhat WHERE username='zhang'; ##删除表redhat中字段username为'zhang'的对象
删除表中所有对象
MariaDB [westos]> DELETE FROM redhat; ##删除表redhat中的所有对象,表格依然存在
删除表
MariaDB [westos]> DROP TABLE redhat; ##删除表redhat
删除数据库
MariaDB [westos]> DROP DATABASE westos; ##删除数据库westos
<5>用户授权
root用户管理mysql的情况下:
- 建立本地用户
MariaDB [westos]> CREATE USER sss@localhost identified by '222'; ##建立本地用户sss,密码222
查看建立的用户及主机
- 对新建用户授权
MariaDB [(none)]> GRANT SELECT,CREATE ON westos.* TO sss@localhost; ##针对westos库授权sss用户CREATE和SELECT权力
MariaDB [(none)]> SHOW GRANTS FOR sss@localhost; ##查看对sss用户授予的权力
- sss用户登陆mysql测试:
[root@shareserver ~]# mysql -usss -p222 ##以zhang用户身份登陆mysql
MariaDB [(none)]> USE westos; ##进入数据库westos
MariaDB [westos]> CREATE TABLE redhat( ##新建表redhat;
-> username varchar(20));MariaDB [(none)]> SHOW TABLES; ##查看数据库westos中的表
SHOW TABLES;命令可以看出用户sss在数据库westos下可以新建表redhat,授权成功。
- 撤销用户权利
MariaDB [(none)]> REVOKE CREATE ON westos.* FROM sss@localhost; ##撤销sss用户在数据库westos下面的CREATE权力
Query OK, 0 rows affected (0.00 sec)
- 删除本地用户
MariaDB [(none)]> DROP USER sss@localhost;
MariaDB [(none)]> SELECT User,Host FROM mysql.user;
数据库备份
[root@shareserver ~]# mysqldump -uroot -pzzz --all-databases > /mnt/alldata.sql ##将所有数据库备份到/mnt/alldata.sql
[root@shareserver ~]# mysqldump -uroot -pzzz --all-databases --no-data ##备份所有数据库(有框架无数据)
[root@shareserver ~]# mysqldump -uroot -pzzz westos > /mnt/westos.sql ##将westos数据库备份到/mnt/westos.sql
[root@shareserver ~]# mysqldump -uroot -pzzz westos --no-data ##备份westos数据库(有框架无数据)
删除westos库:
[root@shareserver ~]# mysql -uroot -pzzz -e "DROP DATABASE westos;"
恢复方式1:
[root@shareserver ~]# mysql -uroot -pzzz -e "CREATE DATABASE westos;" ##非交互界面首先新建一个名叫westos的库
[root@shareserver ~]# mysql -uroot -pzzz westos < /mnt/westos.sql ##备份恢复
查看是否恢复成功:
恢复方式2:
[root@shareserver ~]# mysql -uroot -pzzz -e "DROP DATABASE westos;"
21 CREATE DATABASE westos;
22 USE westos;[root@shareserver ~]# mysql -uroot -pzzz < /mnt/westos.sql
查看是否恢复成功:
数据库密码更改
(1)更改普通用户密码
MariaDB [westos]> UPDATE mysql.user set Password='hello' WHERE User='zhang'; ##修改用户zhang的密码为hello,显示明文
MariaDB [westos]> UPDATE mysql.user set Password=password('yes') WHERE User='zhang'; ##修改用户zhang的密码为yes,显示密文
(2)更改超级用户密码
- 超级用户密码忘记时修改密码:
[root@shareserver ~]# systemctl stop mariadb ##关闭服务
[root@shareserver ~]# mysqld_safe --skip-grant-tables & ##开启mysql登陆接口并忽略授权表,&为打入后台,也可用‘Ctrl+Z‘
[root@shareserver ~]# mysql ##不需要密码直接登陆
MariaDB [(none)]> update mysql.user set Password=password('ggg') where User='root'; ##更改密码
MariaDB [(none)]> exit ##退出
[root@shareserver ~]# ps aux | grep mysql ##过滤mysql的所有进程并用kill -9结束这些进程
注:首先需要将root 32676 0.0 0.0 113256 1604 pts/0 S 07:14 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables对应的进程号结束掉
[root@shareserver ~]# systemctl start mariadb ##重启服务
[root@shareserver ~]# mysql -uroot -pggg ##用修改后的密码登陆mysql
- 超级用户记得密码时修改密码:
[root@shareserver ~]# mysqladmin -uroot -pggg password zzz ##将超级用户密码由ggg改为zzz
[root@shareserver ~]# mysql -uroot -pzzz ##以新密码登陆检测密码是否修改成功
网页模式管理数据库
实验环境:
[root@shareserver ~]# yum install httpd -y ###安装http服务
[root@shareserver ~]# systemctl start httpd ##开启http服务
[root@shareserver html]# systemctl stop firewalld ##关闭防火墙
<1>下载phpMyAdmin-3.4.0-all-language到/var/www/html并解压、重命名
[root@shareserver html]# scp root@172.25.254.81:/home/kiosk/Desktop/phpMyAdmin-2.11.3-all-languages.tar.bz2 .
[root@shareserver html]# tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2 ##解压文件
[root@shareserver html]# rm -fr *.bz2 ##删除原压缩文件
[root@shareserver html]# mv phpMyAdmin-2.11.3-all-languages/ mysqladmin ##重命名
<2>安装php 和php-mysql插件
[root@shareserver html]# yum install php-mysql.x86_64 php -y
<3>修改文件
[root@shareserver html]# cd mysqladmin/
[root@shareserver mysqladmin]# cp config.sample.inc.php config.inc.php ##复制生成config.inc.php文件
[root@shareserver mysqladmin]# vim config.inc.php
17 $cfg['blowfish_secret'] = 'ba17c1ec07d65003'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ ##在该行标红位置写入加密字符串,加密字符串是在该目录下的Documentation.txt里面找到的
[root@shareserver mysqladmin]# less Documentation.txt
<4>重启服务
[root@shareserver mysqladmin]# systemctl restart httpd
测试:
在浏览器上输入http://172.25.254.100/mysqladmin/ 登陆进入网页模式,下图为进入网页的登陆界面(root用户登录):
创建一个新的数据库yyy:
在新建的数据库中新建一个表redhat
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)