系列文章目录
文章目录
- 系列文章目录
- 一、数据库介绍
- 二、mysql介绍
- 2.1mysql配置
- 2.2破解密码
- 2.3my.ini的配置
- 三、mysql的基本操作
一、数据库介绍
数据库其本质就是一个事先写好的socket服务端与客户端程序,使用mysql是为了解决数据共享、查询效率以及数据安全性等一系列问题。总的来说使用数据库可以把程序员从数据管理的繁琐任务中解脱出来,专注于自己程序逻辑的编写。
数据库中的一些基本概念:
- 数据:数据是描述事物的符号,例如文字、图像、声音等等。
- 数据库:数据库是按一定规则存放数据的仓库。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并且可以为用户所共享。
- 数据库管理系统(DBMS):数据库管理系统是科学地组织和存储数据,高效获取和维护数据的一个软件,如MySQL、Oracle、SQLite等等。
- 数据库服务器:数据库服务器是运行数据库管理软件的计算机。
- 如下方表格所示,其中首行的id、name、age称为字段;记录具体数据的各行称为记录;而存放字段和记录的表格称为表;存放多张表的地方称为一个数据库。
id | name | age |
---|---|---|
1 | 张三 | 20 |
2 | 李四 | 30 |
数据库可以分为关系型数据库和非关系型数据库。关系型数据库有mysql、oracle等;非关系型数据库有redis、memcache、mongodb等。
简单来说两种类型的数据库区别在于关系型数据库存储数据需要有表的结构,而非关系型数据库是key-value的形式存储数据的。
二、mysql介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
2.1mysql配置
mysql的下载过程本文就不再介绍了,下载完mysql以后可以打开mysql的根目录,进入bin文件夹中,其中有mysql.exe文件为mysql客户端的启动程序,mysqld.exe为mysql服务端的启动程序,不过我们一般不在bin目录中启动mysql。
我们一般需要配置mysql的服务端,将其设置为开机自动启动。(以windows为例)首先以管理员身份启动终端,在终端输入mysqld --install(mysqld必须配置到环境变量中,否则要输入mysqld的绝对路径),之后mysql的服务端会被配置到windows的服务中,如果想解除配置可以在终端输入mysqld --remove。
完成上述步骤后需要输入net start mysql打开mysql的服务,当然也可以打开windows中的服务找到mysql右击手动启动。如果想关闭mysql的服务需要输入net stop mysql。
接下来在终端输入mysqladmin -uroot password 123 可以设置密码,如果是想修改密码需要输入mysqladmin -uroot -p123 password 456 其中-p后的是原始密码,password后的是新密码。
输入mysql -uroot -p 123表示以root用户身份登录,输入mysql -h172.30.0.1 -uroot -p 123,-h后为自定义的登录ip和端口。
2.2破解密码
在Windows平台下有以下两种方式破解密码:
方式一:
#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables
#3 在cmd中执行:mysql
#4 执行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges;#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql
方式二:
#1. 关闭mysql,可以用tskill mysqld将其杀死
#2. 在解压目录下,新建mysql配置文件my.ini
#3. my.ini内容,指定
[mysqld]
skip-grant-tables#4.启动mysqld
#5.在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root and host='localhost';flush privileges;#6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
在Linux平台下有以下两种方式破解密码:
方式一:
[root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!!
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql
方式二:
[root@egon ~]# vim /etc/my.cnf #mysql主配置文件
[mysqld]
skip-grant-table
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql
MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> \q
[root@egon ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启
[root@egon ~]# systemctl restart mariadb
[root@egon ~]# mysql -u root -p123 #以新密码登录
2.3my.ini的配置
找到mysql根路径中的my.ini文件(如果没有就新建my.ini),可以根据需要进行以下的配置:
[mysqld]
port=3306
#配置服务端的字符编码
character-set-server=utf8mb4
character-set-client-handshake=FALSE
init_connect='SET NAMES utf8mb4'
collation-server=utf8mb4_unicode_ci
[client]
#client是针对所有客户端的
port=3306
#配置client客户端字符编码
default-character-set=utf8mb4
[mysql]
#mysql仅针对mysql客户端
port=3306
#配置字符编码
default-character-set=utf8mb4
#配置用户密码,配置完以后在终端登录mysql客户端可以只输入mysql
user="root"
password="123"
三、mysql的基本操作
数据库的操作
新建数据库:#配置完字符编码以后可以不写charset utf8mb4create database day charset utf8mb4;修改数据库编码:alter database day charset gbk;查看现有数据库:show databases;删除数据库:drop database day;
表的操作
首先选择数据库:use day;新建表:create table t1(id int,name varchar(16));修改表名:alter table t1 rename t2;修改表的字段类型:alter table t2 modify name varchar(10);查询现有的表:show tables;查询表的数据类型:desc t2;删除表:drop table t2;清空表中数据(包括自增值):truncate table day;清空表中数据:delete * from day;
记录的操作:
use day;create table t1(id int,name varchar(16));插入记录:insert t1 values(1,"e"),(2,"t"),(3,"j");修改记录:update t1 set name = "lili" where id = 2;查询记录:select * from t1;select name from t1;select id,name from t1 where id >= 2 and name==”lili“;删除记录:delete from t1 where id = 2;