MySQL 基础概念、基础配置、密码破解

MySQL

基础概念

mysql是什么

mysql就是一个基于socket编写的C/S架构的软件。

客户端软件

mysql自带:如mysql命令,mysqldump命令等

python模块:如pymysql

数据库管理软件分类

分两大类:

关系型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql语句通用

非关系型:mongodb,redis,memcache

可以简单的理解为:

关系型数据库需要有表结构

非关系型数据库是key-value存储的,没有表结构

安装

linux版本

二进制rpm包安装

yum -y install mysql-server mysql

Window版本

1、下载:MySQL Community Server 5.7.16

http://dev.mysql.com/downloads/mysql/

2、解压

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64

3、添加环境变量

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ; 分割】

4、初始化

mysqld --initialize-insecure

5、启动MySQL服务

mysqld # 启动MySQL服务

6、启动MySQL客户端并连接MySQL服务

mysql -u root -p # 连接MySQL服务器

将MySQL服务制作成windows服务

注意:--install前,必须用mysql启动命令的绝对路径

制作MySQL的Windows服务,在终端执行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --install

移除MySQL的Windows服务,在终端执行此命令:"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

【启动MySQL服务】net start mysql

【关闭MySQL服务】net stop mysql

破解密码

linux平台下,破解密码的两种方式:

方法一:删除授权库mysql,重新初始化

[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 #以新密码登录

windows平台下,5.7版本mysql,破解密码的两种方式:

方式一

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,然后就可以以新密码登录了

统一字符编码

强调:配置文件中的注释可以有中文,但是配置项中不能出现中文

在mysql的解压目录下,新建my.ini,然后配置

1,在执行mysqld命令时,以上列配置会生效,即mysql服务启动时生效

[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
default-storage-engine=innodb
innodb_file_per_table=1

解压的目录

basedir=E:\mysql-5.7.19-winx64

data目录

datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据

2, 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效

[client]
port=3306
default-character-set=utf8
user=root
password=123

3,只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置

[mysql]
;port=3306
;default-character-set=utf8
user=egon
password=4573

!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准

统一字符编码【配置】

#1. 修改配置文件
[mysqld]
default-character-set=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

#mysql5.5以上:修改方式有所改动
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

#2. 重启服务
#3. 查看修改结果:
\s
show variables like '%char%'

猜你喜欢

转载自www.cnblogs.com/sly27/p/9123429.html