文章目录
一、数据库的介绍
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 #能连别人,别人也能连自己