linux之数据库mariadb
MariaDB
1.定义:
MariaDB的特性:插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择存储引擎也称为“表类型”
MariaDB与MySQL的比较:
(1) 支持更多的存储引擎
(2) MyISAM-->Aria (改进版)不支持事务
(3) InnoDB --> XtraDB(改进版) 支持事务
(4) 诸多扩展和新特性
(5) 提供了较多的测试组件
(6) 完全的开源软件
2.配置
2.1.数据库监听窗口的配置
[[email protected] ~]# yum install mariadb-server -y ###安装数据库
[[email protected] ~]# systemctl start mariadb
###开启数据库服务
[[email protected] ~]# mysql
###进入数据库
[[email protected] ~]# netstat -antlp | grep mysql
###查看数据库端口 校验mariadb的监听端口
[[email protected] ~]# vim /etc/my.cnf
skip-networking=1 ####屏蔽网络 此时只允许通过套接字文件进行本地连接,阻断所有来自网络的tcp/ip连接[[email protected] ~]# systemctl restart mariadb
[[email protected] ~]# netstat -antlp | grep mysql
[[email protected] ~]# mysql
2.2数据库的安全初始化
[[email protected] ~]# mysql_secure_installation
####数据库的安全初始化 使用mysql_secure_installation工具进行数据库安全设置,根据提示完成操作:
Set root password? [Y/n] Y ###设置用户名密码
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 ####刷新数据库
[[email protected] ~]# mysql -uroot -p
2.3数据库的基本操作
[[email protected] ~]# mysql -uroot -p
MariaDB [(none)]> show databases; ###显示数据库
MariaDB [(none)]> use mysql ###进入数据库
MariaDB [mysql]> show tables; ###查看当前数据库表中的内容
MariaDB
[mysql]> select * from user; ###查询user表中的所有内容(*可以用此表中的任何字段来代替)
MariaDB [mysql]> desc user; ####查询user表的结构(显示所有字段的的名称)
2.4数据库的建立
MariaDB [(none)]> create database westos; ###创建westos数据库
MariaDB [(none)]> use westos
MariaDB [westos]> create table linux(
-> username varchar(15) not null,
-> password varchar(15) not null );
Query OK, 0 rows affected (0.36 sec)
####创建linux表,并且linux表中含有两个字段username, passworf 每个字段长度为15个字符,并且不能为空。
MariaDB [westos]> show tables; ##查看该数据库表格
MariaDB [westos]> insert into linux values ('user1','123');
####向linux表中插入数据,用户名为user1,密码为123此时密码没有加密
MariaDB [westos]> select * from linux;
MariaDB [westos]> insert into linux values ('user2',password('123'));
####向linux表中插入数据,用户名为user2,密码为123此时密码加密
MariaDB [westos]> select * from linux; ##查看表格信息
MariaDB [westos]> update linux set password=password('123') where (username='user2' or username='user1') ;
#####更新多个选项
2.5数据库的更新
MariaDB [westos]> alter table linux add age varchar(20); ###增加一列
MariaDB [westos]> alter table linux add date varchar(20) after password;
#####在linux表格中的password列后添加一列date
MariaDB [westos]> select * from linux;
MariaDB [westos]> update linux set password=password('123') where (username='user2' or username='user1') ;
MariaDB [westos]> update linux set password=123 where username='user2' ;
MariaDB [westos]> update linux set password=password('123') where username='user3' ;
####更新数据库中的数据
2.6删除表中的数据
delete from table_name where attribute = value;
####删除user1
####drop table table_name
#######删除表格
######删除linux表格中age字段
###删除数据库drop database database_name;
2.7数据库备份
mysqldump -uroot -predhat --all-database ####备份所有表中的所有数据
mysqldump -uroot -predhat --all-database --no-data ####备份所有的表,但不备份数据
mysqldump -uroot -predhat westos ###备份westos数据库
mysqldump -uroot -predhat westos > /mnt/westos.sql ###备份westos库并把数据保存到westos.sql中
mysql -uroot -e "create database westos" ###建立westos库
mysql -uroot -predhat westos < /mnt/westos.sql ###把数据导入到数据库中
mysql -uroot -predhat westos linux > /mnt/linux.sql ####备份westos数据库中linux表到/mnt/linux.sql中
2.8数据库用户授权
[[email protected] ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> select User ,Host from mysql.user;
MariaDB [(none)]> create user [email protected] identified by 'lee'; ####创建用户[email protected]并设置密码lee
MariaDB [(none)]> create user [email protected]'%' identified by 'lee';
MariaDB [(none)]> show grants for [email protected]; ###显示用户的权限
MariaDB [(none)]> grant select on westos.linux to [email protected]'%'; ####用户的授权
[[email protected] ~]# vim /etc/my.cnf
[[email protected] ~]# mysql -ulee -plee -h 172.25.254.121
MariaDB [(none)]> use westos
MariaDB [westos]> revoke delete on westos.linux from [email protected]; ####撤销用户的权限
MariaDB
[westos]> revoke delete on westos.linux from [email protected]'%';
MariaDB [westos]> drop user [email protected]'%' #####删除用户
2.9数据库超户密码忘记
[[email protected] ~]# mysqladmin -uroot -predhat password westos ####修改超户密码
[[email protected] ~]# mysql -uroot -pwestos
[[email protected] ~]# systemctl stop mariadb
[[email protected] ~]# mysqld_safe --skip-grant-tables & ###开启myql登陆接口并忽略授权表
[[email protected] ~]# mysql ###直接不用密码可以登陆
MariaDB [(none)]> select User ,Host,Password from mysql.user;
MariaDB [(none)]> update mysql.user set Password=password('456') where User='root';
####更新超级用户密码信息
MariaDB [(none)]> select User ,Host,Password from mysql.user;
MariaDB [(none)]> quit
[[email protected] ~]# ps aux | grep mysql
[[email protected] ~]# kill -9 6888
[[email protected] ~]# kill -9 6683
[[email protected] mysqladmin]# systemctl restart mariadb
[[email protected] ~]# mysql -uroot -p456
MariaDB [(none)]> show databases;
2.10数据库图形界面管理数据库
####安装相应的软件httpd php php-mysql phpMyAdmin-3.4.0-all-languages.tar.bz2
[[email protected] ~]# yum install httpd php php-mysql -y
[[email protected] ~]# systemctl enable httpd
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/
[[email protected] ~]# cd /var/www/html/
[[email protected] html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
[[email protected] html]# cd mysqladmin/
#####文件的配置
[[email protected] mysqladmin]# cp -p config.sample.inc.php config.inc.php
[[email protected] mysqladmin]# vim config.inc.php
$cfg['blowfish_secret'] = 'mysql'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
####添加数据库
[[email protected] mysqladmin]# systemctl restart mariadb
###测试