<5>MySQL数据库的基本管理


一、数据库的介绍

1.什么是数据库
数据库就是个高级的表格软件
2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …
3.Mysql (SUN -----> Oracle)
4.mariadb是Mysql的一个分支,Mysql是一大类

二、mariadb 的安装

配置好仓库文件,搭建好镜像源
[root@node2 ~]# dnf search mariadb
[root@node2 ~]# dnf install mariadb-server.x86_64  #安庄

三、软件基本信息

指令 含义
mariadb.service 启动服务
3306 默认端口号
/etc/my.cnf 主配置文件
/var/lib/mysql 数据目录,当需要重新安装 mariadb 时需要清理此目录或备份

四、数据库的安全初始化

[root@node2 ~]# dnf search mariadb
[root@node2 ~]# dnf install mariadb-server.x86_64  #安庄
[root@node2 ~]# rpm -ql mariadb  #查看配置文件目录
[root@node2 ~]# systemctl enable --now  mariadb
[root@node2 ~]# mysql_secure_installation   #安全初始化,只输入新密码,其他回车
操作步骤
Set root password? [Y/n]   #回车
New password:   #填写新密码westos
Remove anonymous users? [Y/n] #回车
 ... Success!
Disallow root login remotely? [Y/n] #回车
 ... Success!
Remove test database and access to it? [Y/n] #回车
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reload privilege tables now? [Y/n] #回车

[root@node2 ~]# netstat -antlupe | grep mysql  #显示端口
[root@node2 ~]# mysql -uroot -p   ## -u 指定登陆用户 -p 密码
Enter password: westos
MariaDB [(none)]> quit   #说明能进入数据库,quit退出
[root@node2 ~]# vim /etc/my.cnf.d/mariadb-server.cnf  #关闭数据库开放端口
skip-networking=1
[root@node2 ~]# systemctl restart mariadb
[root@node2 ~]# natstat -antlupe | grep mysql  #已经不显示端口了

在这里插入图片描述

在这里插入图片描述

五、数据库的基本管理

%1.查看
[root@node2 ~]# mysql -uroot -p #进入数据库
MariaDB [(none)]> SHOW DATABASES;  #查看显示库名称
MariaDB [(none)]> CREATE DATABASE westos;  #新建库
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE westos;  #进入westos库
MariaDB [westos]> CREATE TABLE linux(    #在westos库中新建表,没有分号就不结束,可以回车写两行
    -> username varchar(6) not null, 
    -> password varchar(40) not null
    -> );

MariaDB [westos]> DESC linux;  #显示表结构
MariaDB [westos]> INSERT INTO linux VALUES('user1','123')  #插入数据
MariaDB [westos]> SELECT * FROM linux;
MariaDB [westos]> INSERT INTO linux VALUES('user2','123'),('user3','123');#插入多个数据
MariaDB [westos]> SELECT * FROM linux; #查询表格内所有数据
MariaDB [westos]> FLUSH PRIVILEGES;				#刷新数据库


%更改
%更改库名,此方法容易丢失数据,改完再改回去
[root@node2 ~]# cd /var/lib/mysql/
[root@node2 mysql]# ls
aria_log.00000001  ibdata1      ibtmp1             mysql.sock          tc.log
aria_log_control   ib_logfile0  multi-master.info  mysql_upgrade_info  westos
ib_buffer_pool     ib_logfile1  mysql              performance_schema
[root@node2 mysql]# mv westos/ lee
[root@node2 mysql]# ls
aria_log.00000001  ib_logfile0  multi-master.info   performance_schema
aria_log_control   ib_logfile1  mysql               tc.log
ib_buffer_pool     ibtmp1       mysql.sock
ibdata1            lee          mysql_upgrade_info
[root@node2 mysql]# systemctl restart mysql #再次进入时发现库名westos改为了lee
%更改库名,此方法容易丢失数据,改完再改回去

root@node2 mysql]# mysql -uroot -p  ### -u 指定登陆用户 -p 密码
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE westos;
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> ALTER TABLE linux RENAME user;  #更改表名
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> SELECT * FROM user;
MariaDB [westos]> ALTER TABLE user ADD age varchar(4);  #添加表格里的字段
MariaDB [westos]> ALTER TABLE user ADD class varchar(6);
MariaDB [westos]> SELECT * FROM user;
MariaDB [westos]> ALTER TABLE user DROP  age;  #删除表格里的字段
MariaDB [westos]> DESC user;
MariaDB [westos]> ALTER TABLE user ADD  age varchar(4) AFTER password;  #指定位置添加表格里的字段
MariaDB [westos]> update westos.user set age='18', class='linux' where username='user1';   ##填写编辑/更改表格里的相应字段里的内容
MariaDB [westos]> SELECT * FROM user;

%删除之前先备份
[root@node2 ~]# mysqldump -uroot -pwestos --all-database  #备份所有
[root@node2 ~]# mysqldump -uroot -pwestos --all-database --no-data   #备份,但不备份数据
[root@node2 ~]# mysqldump -uroot -pwestos westos  #只备份westos库里的内容
[root@node2 ~]# mysqldump -uroot -pwestos westos > /mnt/westos.sql   #把westos库里的内容备份到/mnt/westos.sql里面

%删除
MariaDB [westos]> delete from user where username='user1' and age='18';#两个条件都符合的才会被删掉
MariaDB [westos]> DROP TABLE linux; 
MariaDB [westos]> DROP DATABASE westos;

%恢复
方法1:
[root@node2 ~]# mysql -uroot -pwestos -e "create database westos;" #新建westos库
[root@node2 ~]# mysql -uroot -pwestos westos < /mnt/westos.sql  #把备份的数据倒入新建的westos库中;-pwestos是密码;
方法2
[root@node2 ~]# vim /mnt/westos.sql
添加
CREATE DATABASE westos;
USE westos;
[root@node2 ~]# mysql -uroot -pwestos < /mnt/westos.sql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

恢复方法1:
在这里插入图片描述

恢复方法2:

在这里插入图片描述在这里插入图片描述

六、数据密码管理

%知道原始密码,改密码
[root@node2 ~]# mysqladmin -uroot -pwestos password lee

%不知道原始密码,改密码
[root@node2 ~]# systemctl stop mariadb
mysqld_safe --skip-grant-tables &
[root@node2 ~]# mysql  #可以直接进
MariaDB [(none)]> select * from mysql.user
MariaDB [(none)]> update mysql.user set authentication_string=password('lee') where user='root'
MariaDB [(none)]> quit;

[root@node2 ~]# ps aux | grep mysql  #把相关进程删掉,grep的可以不删除
[root@node2 ~]# kill -9 34847
[root@node2 ~]# kill -9 34941
[root@node2 ~]# systemctl start mariadb
[root@node2 ~]# mysql -uroot -plee   #可以进入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、用户授权

[root@node2 ~]# mysql -uroot -p
MariaDB [(none)]> CREATE USER westos@localhost identified by 'westos';
MariaDB [(none)]> select User from mysql.user;

MariaDB [(none)]> GRANT SELECT ON westos.* TO westos@localhost;
MariaDB [(none)]> SHOW GRANTS for westos@localhost;
MariaDB [(none)]> quit

[root@node2 ~]# mysql -uwestos -p
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> quit



[root@node2 ~]# mysql -uroot -p
MariaDB [(none)]> SHOW GRANTS for westos@localhost;
MariaDB [(none)]> GRANT INSERT ON westos.* TO westos@localhost;
MariaDB [(none)]> SHOW GRANTS for westos@localhost;

[root@node2 ~]# mysql -uwestos -p
MariaDB [(none)]> INSERT INTO westos.user VALUES('lee','123','20','py');
MariaDB [(none)]> SELECT * FROM westos.user;


[root@node2 ~]# mysql -uroot -p
MariaDB [(none)]> REVOKE INSERT ON westos.* FROM westos@localhost;
MariaDB [(none)]> REVOKE SELECT ON westos.* FROM westos@localhost;
MariaDB [(none)]> DROP USER westos@localhost;

八、phpmyadmin 的安装与使用

[root@node2 html]# dnf install php
[root@node2 html]# dnf install php-mysqlnd.x86_64 -y
 [root@node2 html]# systemctl enable --now httpd
[root@node2 html]# systemctl disable --now firewalld
[root@node2 html]# wget http://172.25.254.250/software/phpMyAdmin-3.4.0-all-languages.tar.bz2  #访问250/software/
[root@node2 html]# cd /var/www/html/
[root@node2 html]# ls
[root@node2 html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@node2 html]# ls
[root@node2 html]# rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@node2 html]# mv phpMyAdmin-3.4.0-all-languages myadmin
[root@node2 html]# ls
[root@node2 myadmin]# cd myadmin
[root@node2 myadmin]# ls
[root@node2 myadmin]# less README
[root@node2 myadmin]# less Documentation.txt
[root@node2 myadmin]# cp config.sample.inc.php config.inc.php
[root@node2 myadmin]# systemctl restart httpd

网页登陆72.25.254.203/myadmin/
登陆root 
mima:lee
把westos库删掉,在node2中产看westos被删掉
新建westos,新建表user,INSERT填写user表内容age,class
在node2中产看westos,table

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

九、远程登录

%建立一个能够远程登陆的用户	lee
[root@node2 myadmin]# mysql -uroot -plee -e "select User,Host from mysql.user;"
[root@node2 myadmin]# mysql -uroot -plee -e "create user lee@'%' identified by 'lee';"

[root@node2 myadmin]# mysql -uroot -plee -e "select User,Host from mysql.user;"
[root@node2 myadmin]# rpm -qc mariadb-server
[root@node2 myadmin]# vim /etc/my.cnf.d/mariadb-server.cnf
注释#skip-networking=1
m[root@node2 myadmin]# ysql -ulee -h172.25.254.202 -p  #能连别人,别人也能连自己

猜你喜欢

转载自blog.csdn.net/qiao_qing/article/details/110424220