文章目录
mariadb数据库
MySQL的一个分支,完全兼容MySQL,包括API和命令行,是MySQL的替代品
GPL:General Public License通用公共许可证
GNU:GNU is NOT Unix,一个组织
关系型数据库:oracle mysql pgsql db2 SQLserver
monogodb
内存型(非关系型):redis memcache
/var/lib/mysql/ #mysql的数据文件
/etc/my.cnf #配置文件
3306端口
mysql命令登录
数据库中命令大写且以分号结尾
%表示所有
安装
yum install mariadb-server.x86_64 -y
vim /etc/my.cnf
skip-networking=1 #关闭对外开放的端口
mysql_secure_installation #改密码(安全初始化)
mysql -uroot -predhat #用户密码登陆
数据库的基本管理
1.查看
SHOW DATABASES; #数据库的查看
mysql -uroot -predhat -e "SHOW DATABASES"
USE mysql; SHOW TABLES; #进入一个数据库,查看表
DESC xx; #表的结构的查看
SELECT * FROM xx; #表内容的查看
SELECT xx,xx FROM xx; #对表内容中的两项进行查看
SELECT xx,xx FROM xx WHERE xx='xxx'; #对表内容中的两项中其中一项的某一条件进行查看
2.建立
CREATE DATABASE westos; #建立新的数据库
USE westos;
CREATE TABLE chen(
-> username varchar(10) not null,
-> password varchar(20) not null); #建立表,说明结构
INSERT INTO chen VALUES ('cp','111'); #插入数据
3.修改和删除
3.1 ALTER(修改)&UPDATE(更新)
ALTER TABLE chen ADD age varchar(5) not null; #在最后面添加class
ALTER TABLE chen DROP age; #删除表中的一项
ALTER TABLE chen RENAME cc; #将表重命名
ALTER TABLE chen ADD class varchar(10) not null AFTER username; #在username后面添加class
UPDATE chen SET class='7' WHERE username='cp'; #将cp的class填为7
3.2 DELETE(删除表的内容)
DELETE FROM chen WHERE class='7' AND username='cp'; #删除表中指定的一行
3.3 DROP(删除)
DROP TABLE chen; #删除表
DROP DATABASE westos; #删除数据库
DROP USER XXX@localhost;
4.新建用户且赋予权限
CREATE DATABASE userdata;
CREATE TABLE userdata.usertab (username varchar(10) not null);
用户建立:
CREATE USER westos@localhost identified by 'westos';
CREATE USER chen@'%' identified by 'westos';
SELECT * FROM mysql.user;
用户授权:
GRANT SELECT, INSERT ON userdata.* TO westos@localhost;
SHOW GRANTS for root@localhost; ##查看用户权限
FLUSH PRIVILEGES; ##刷新权限
GRANT SELECT, INSERT ON userdata.* TO westos@localhost IDENTIFIED by 'westos';
##新建用户且授权
INSERT INTO userdata.usertab VALUES ('cp');
REVOKE INSERT,SELECT ON userdata.* FROM westos@localhost; ##REVOKE,取消权限
测试:
INSERT INTO userdata.usertab VALUES ('cp1');
ERROR 1142 (42000): INSERT command denied to user 'westos'@'localhost' for table 'usertab'
5.数据库的备份
mysqldump -uroot -predhat --all-data #备份所有数据库但只能看
mysqldump -uroot -predhat --all-data --no-data #只导出表结构,不导出数据
mysqldump -uroot -predhat userdata > /xxx/userdata.sql ##备份userdata库,且导入/xxx/userdata.sql文件
删库做恢复测试
mysqladmin -uroot -predhat creat userdata
mysql -uroot -predhat userdata < /xxx/userdata.sql
6.用户密码的修改
已知密码:
mysqladmin -uroot -predhat password westos
忘记密码:
关闭mariadb服务
systemctl stop mariadb
mysqld_safe --skip-grant-tables & #免密进入数据库
mysql #进入数据库
UPDATE mysql.user SET Password='redhat' WHERE User='root'; ##此时修改的密码为明文
UPDATE mysql.user SET Password=password('redhat') WHERE User='root'; ##密文
SELECT * FROM mysql.user;
关闭之前打开的免密进入数据库的进程
ps aux | grep mysql
kill -9 4572 4730
新密码登陆
7.图形化管理数据库(phpadmin)
docker
rpms
pkgs
nginx
install httpd -y
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
systemctl start httpd
tar zxf phpMyAdmin-4.0.10.20-all-languages.tar.gz -C /var/www/html/
cd /var/www/html/
mv phpMyAdmin-4.0.10.20-all-languages phpMyAdmin
yum install php-mysql.x86_64 -y
rpm -ivh php-mbstring-5.4.16-21.el7.x86_64.rpm
systemctl restart httpd.service
浏览器访问:
http://172.25.254.107/phpMyAdmin