mysql数据库的一些基本操作

1.数据库的介绍

1.什么是数据库
数据库就是个高级的表格软件

2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …

3.Mysql (SUN -----> Oracle)

4.mariadb

2.mariadb的安装

[root@d ~]# dnf install mariadb-server.x86_64 -y

3.软件基本信息

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

4.数据库开启

[root@d ~]# systemctl enable --now mariadb

5.数据库的安全初始化

1.关闭数据库开放端口

[root@d ~]# vim /etc/my.cnf.d/mariadb-server.cnf 
[mysqld]
skip-networking=1
[root@d ~]# systemctl restart mariadb.service 
[root@d ~]# netstat -antlupe | grep mysql   #此命令查询不到端口

2.执行安全初始化脚本

[root@d ~]# mysql_secure_installation 
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
[root@d ~]# mysql  ##默认不需要密码,初始化完毕后需要
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@d ~]# mysql -uroot -p  ## -u 指定登陆用户 -p 密码
MariaDB [(none)]> exit

6.数据库的基本管理

1.查看

[root@d ~]# mysql -uroot -p
SHOW DATABASES;				##显示库名称
USE mysql;				##进入mysql库
SHOW TABLES;				##显示库中的所有表
SELECT * FROM user;			##查询所有数据
SELECT Host,User,Password FROM user;	##查询指定字段

2.新建

[root@d ~]# mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE westos;  ##新建库
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE westos;
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> CREATE TABLE westos ( username varchar(6) not null,password varchar(30) not null);  ##新建表
MariaDB [westos]> DESC westos;  ##显示表结构
MariaDB [westos]> INSERT INTO westos VALUES('user1','123'),('user2','123');  #插入数据
MariaDB [westos]> FLUSH PRIVILEGES;  #刷新数据库
MariaDB [westos]> SELECT * FROM westos;

3.更改

尽量不要更改库的名字,否则可能会导致数据的
MariaDB [westos]> ALTER TABLE westos RENAME user;
+----------+----------+
| username | password |
+----------+----------+
| user1    | 123      |
| user2    | 123      |
+----------+----------+
MariaDB [westos]> ALTER TABLE westos ADD age varchar(4) AFTER password;
+----------+----------+------+
| username | password | age  |
+----------+----------+------+
| user1    | 123      | NULL |
| user2    | 123      | NULL |
+----------+----------+------+
MariaDB [westos]> SELECT * FROM westos;
+----------+----------+
| username | password |
+----------+----------+
| user1    | 123      |
| user2    | 123      |
+----------+----------+
MariaDB [westos]> UPDATE westos SET age='18',class='linux' WHERE username='user1';
+----------+----------+------+-------+
| username | password | age  | class |
+----------+----------+------+-------+
| user1    | 123      | 18   | linux |
| user2    | 123      | NULL | NULL  |
+----------+----------+------+-------+

4.删除

删除数据之前我们先将已有的数据做一下备份。
MariaDB [westos]> DELETE from westos where username='user1' and age='18';
MariaDB [westos]> DROP TABLE westos;
MariaDB [westos]> DROP DATABASE westos;

7.数据密码管理

1.数据密码更改

[root@d mnt]# mysqladmin -uroot -p password westos
[root@d mnt]# mysql -uroot -p  #输入新的密码。

2.数据库密码破解

[root@d mnt]# systemctl stop mariadb.service 
[root@d mnt]# mysqld_safe --skip-grant-tables &
[root@d mnt]# mysql
MariaDB [(none)]> UPDATE mysql.user set authentication_string=password('lee') WHERE User='root';  #RHEL8
UPDATE mysql.user set Password=password('lee') WHERE User='root';		##RHEL7
MariaDB [(none)]> flush privileges;
[root@d mnt]# ps aux | grep mysql
[root@d mnt]# kill -9 32684
[root@d mnt]# kill -9 32778
[root@d mnt]# ps aux | grep mysql
root    32872  0.0  0.0  12108  1056 pts/0    S+   11:30   0:00 grep --color=auto mysql
[root@d mnt]# systemctl restart mariadb.service 
[root@d mnt]# mysql -uroot -p 

8.用户授权

MariaDB [(none)]> CREATE USER lee@localhost identified by 'lee';   ##只能用localhost登陆
MariaDB [(none)]> SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| lee  | localhost |
| root | localhost |
+------+-----------+
MariaDB [(none)]> GRANT INSERT,SELECT ON westos.* TO lee@localhost;
MariaDB [(none)]> SHOW GRANTS for lee@localhost;
| GRANT SELECT, INSERT ON `westos`.* TO 'lee'@'localhost'  
REVOKE SELECT ON westos.* FROM lee@localhost; #移除什么权力
DROP user lee@localhost; #删除用户


远程登陆数据库 #但是尽量不要使用远程登陆对数据库不安全。
[root@d mnt]# vim /etc/my.cnf.d/mariadb-server.cnf 
# skip-networking=1 注释   ##开启开放端口。
[root@d mnt]# systemctl restart mariadb.service 
[root@d mnt]# netstat -antlupe | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      27         201233     33509/mysqld        
MariaDB [(none)]> CREATE USER lee@'%' identified by 'lee';
MariaDB [(none)]> SELECT User,Host FROM mysql.user;
+------+-----------+
| User | Host      |
+------+-----------+
| lee  | %         |
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
+------+-----------+
[root@d mnt]# systemctl restart mariadb.service
[root@d mnt]# mysql -ulee -p -h ip号  #可能需要关火墙。
MariaDB [(none)]> DROP user lee@'%';

9.数据库的备份

[root@d mnt]# mysqldump -uroot -p --all-databases
[root@d mnt]# mysqldump -uroot -p --all-databases --no-data

[root@d mnt]# mysqldump -uroot -p westos > /mnt/westos.sql

两种重新倒入数据库的方式:
1.[root@d mnt]# vim westos.sql
 19 -- Table structure for table `westos`
 20 --
 21 CREATE DATABASE westos;
 22 USE westos;
 23 DROP TABLE IF EXISTS `westos`;
[root@d mnt]# mysql -uroot -p < /mnt/westos.sql #就将数据重新倒入了数据库中。
2.[root@d mnt]# mysql -uroot -p -e "create database westos;"
[root@d mnt]# mysql -uroot -p  westos < /mnt/westos.sql #需要注意把写入westos.sql的21和22行删去先。

10.phpmyadmin的安装

用代码来管理数据库比较麻烦,下面介绍一种网页图形化管理数据库,简单又方便,还可以学习具体操作的代码,very nice.

[root@d ~]# dnf install httpd php php-mysqlnd -y
[root@d ~]# systemctl enable --now httpd
[root@d Desktop]# cp phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/
[root@d Desktop]# cd /var/www/html/
[root@d html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@d html]# mv phpMyAdmin-3.4.0-all-languages myadmin
[root@d html]# cd myadmin/
[root@d myadmin]# cp config.sample.inc.php config.inc.php
[root@d myadmin]# systemctl restart httpd



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值