mysql数据库的基本管理
前言
本章我们主要学linux系统下mysql数据库的安装、初始化、增删查改、密码破解、数据库备份、用户授权及mysql可视化等功能。
一、mysql数据库安装与安全初始化
1.安装
安装dnf install mariadb-server -y
systemctl enable --now mariadb
开启服务
2.基本信息
mariadb.service | 服务名称 |
3306 | 默认端口号 |
/etc/my.cnf.d/mariadb-server.cnf | 主配置文件 |
/var/lib/mysql | 数据目录,当需要重新安装mariadb时需要清理此目录或备份 |
3.安全初始化
安装好后进入Mysql时是不需要密码的,显然这样的操作是不安全的,所以我们需要对mysql进行安全初始化。
mysql_secure_installation
脚本运行,按要求设置密码
mysql -uroot -p
密码登陆,-p后回车 输入密码
关闭端口
rpm -qc mariadb-server
查询配置文件
vim /etc/my.cnf.d/mariadb-server.cnf
编辑配置文件
skip-networking=1
重启服务 查看端口开放情况
netstat -antupe | grep mysql
mysql未打开网络端口。
二、数据库的基本管理
进入数据库
mysql -uroot -p
1.查看
SHOW DATABASES;
显示库名称
USE mysql;
进入mysql库
SHOW TABLES;
显示库中所有的表
SELECT * FROM user;
查询所有user表数据
SELECT Host,User,Password FROM user;
查询部分数据
SELECT Host FROM mysql.user WHERE User='root';
2.新建
CREATE DATABASE westos;
新建库
CREATE TABLE westos.linux( #新建表
-> username varchar(10)
-> not null, #不能为空
-> password varchar(30) not null );
SHOW TABLES;
DESC westos.linux;
显示表结构
SELECT * FROM westos.linux;
查看linux表中所有数据
INSERT INTO westos.linux VALUES ('user1','123');
插入数据
SELECT * FROM westos.linux;
刷新数据库
3.更改
注:一般不改库的名字,可能损失库中的数据。
ALTER TABLE linux RENAME user;
将表lnux改为user
ALTER TABLE user ADD age varchar(4);
添加age这一栏进user
ALTER TABLE user DROP age;
删除age这一栏
ALTER TABLE user ADD age varchar(4) AFTER username;
添加age在username后
UPDATE user SET age='23' #添加信息到user1的age中
-> WHERE username='user1';
4.删除
DELETE FROM user WHERE username='user3';
删除user3这一行信息
DROP TABLE user;
删除表user
DROP DATABASE westos;
删除库westos
三、密码管理
1.密码更改
若知道原始密码,只需
mysqladmin -uroot -p password lee
----> 输入原始密码,即可将密码修改为lee
再次登陆即可检验
2.密码破解
若不知道原始密码,
1关闭mariadb,跳过验证环节,
systemctl stop mariadb.service
mysqld_safe --skip-grant-tables &
此时即可无需密码进入mysql。
SELECT * FROM mysql.user;
UPDATE mysql.user SET authentication_string='westos' WHERE User='root';
---->此方式为使用mysqladmin修改密码后可用这条命令,但此命令改的密码为明文westos,未加密
UPDATE mysql.user SET authentication_string=password('westos') WHERE User='root';
---->修改秘密为加密明文
ps aux | grep mysql抓取关于mysql的进程并全部kill掉
重启服务,进入mysql即可。
若未用过mysqladmin更改过密码
UPDATE mysql.user SET Password=password('lee') WHERE User='root';
四、数据库的备份
建立好需要备份的库和表
mysqldump -uroot -p --all-databases > /mnt/alldata.sql
所有数据备份
mysqldump -uroot -p --all-databases --no-data > /mnt/westos.sql
所有数据备份除了数据目录
mysqldump -uroot -p westos > /mnt/westos.sql
westos库备份
若备份后westos库被删除
恢复:
1.
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
先生成westos库
mysql -uroot -pwestos westos < /mnt/westos.sql
再导入备份
mysql -uroot -pwestos -e "SELECT * FROM westos.user;"
查看备份结果
mysql -uroot -pwestos -e “” 可直接执行sql语句。
编辑备份文件/mnt/westos.sql
添加sql语句
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos < /mnt/westos.sql
五、mysql中的用户授权
登陆mysql root用户为其他用户进行授权
CREATE USER hyl@localhost identified by 'hyl'
创建用户为hyl@localhost,密码为hyl
SHOW GRANTS for hyl@localhost;
查看用户权限
mysql -uhyl -p 登陆成功,但进行不了其他操作,因为还未授权
继续进入root mysql进行授权
GRANT INSERT,SELECT ON westos.* TO hyl@localhost;
授权插入、查询权限到hyl@localhost用户的westos库的所有表
SHOW GRANTS for hyl@localhost;
mysql -uhyl -phyl
授权后显示westos库,且可插入可查询
REVOKE SELECT ON westos.* FROM hyl@localhost;
收回查询权限
DROP user hyl@localhost;
删除用户hyl@localhost
六、phpmyadmin–mysql可视化
安装httpd、php、php相关mysql插件
dnf install httpd php php-mysqlnd.x86_64 -y
systemctl enable --now httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
打开httpd服务,设置火墙允许httpd服务被访问
下载相关插件 phpMyAdmin-3.4.0-all-languages.tar.bz2 可去官网直接获取,注意php与mysql版本。
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
解压到/mnt
cp -r phpMyAdmin-3.4.0-all-languages/ /var/www/html/mysqladmin
复制到共享目录下的mysqladmin中
cp config.sample.inc.php config.inc.php
按照README格式修改配置文件
systemctl restart httpd
重启服务
frefox:http://172.25.254.109/mysqladmin 测试
总结
学习完本章后,应当充分了解mysql的基本管理,包括安全初始化、数据库的增删查改、密码破解、备份以及可视化的使用。