MySQL 入坑指南
本篇文章主要记录自己在使用配置 MySQL 过程中的注意点和配置流程,因为自己常常帮别人配置 MySQL 环境,但是每次都需要重新查看下资料,我就自己记录下,为快速配置 MySQL 环境而节省时间。
MySQL 的安装
下载安装包
个人建议选择zip包安装,这样Windows和Linux下配置过程很相似
5.7 或者最新版官网地址:http://dev.mysql.com/downloads/mysql/
5.6 版本百度云地址:http://pan.baidu.com/s/1b6hLCE
这里还要讲下有的下载的 5.7 版本 里面没有 data 目录,这个常常会导致安装失败,建议下载压缩包后解压看看里面有没有 data 目录,选择有 data 目录 的压缩包安装较好,如果没有可以从以前或者别人的目录里拷贝,上面百度云里的 5.6 版本 是有的。
解压到安装目录
尽量避开系统盘,这样便于数据的恢复
编辑配置文件
将 my-default.ini 复制为 my.ini 并修改如下两个配置:
1 | basedir = 解压后目录 ( bin 文件上一级目录 ) |
比如:
1 | basedir = D:\DevePrograms\mysql-5.6.21-winx64 |
安装
管理员身份 打开命令 cmd 窗口,cd
到 bin 文件夹下。( Windows7 的话通常点击开始 – 附件 – 命令提示符右击 – 以管理员方式打开 )
输入 mysqld -install
( 注意是 mysqld 而不是 mysql, 有个 d ),提示安装成功即可。
如果提示不成功,则 mysqld -remove
, 再执行 mysqld -install
.
开启 / 关闭 mysql 服务
MySQL 装成功实际上就是 MySQL 服务装成功,服务的开启与否决定能不能使用 MySQL 数据库。
开启服务:net start mysql
关闭服务:net stop mysql
如果大家按照第四部安装的,通常默认服务是开机自启动的,默认可以正常使用,如果用了什么安全管家加速电脑开机关闭了 MySQL 的服务,则就需要在使用 MySQL 服务前先开启下 MySQL 服务。
大家可以 [ 右击我的电脑 – 管理 – 服务和应用程序展开 – 服务 ] 里面就可以找到 MySQL 服务,如果大家想禁止开机自启或者想开机自启都可以在这里设置。
登录使用 MySQL
开启服务后,用 mysql -u root -p
回车后会让输入密码,默认密码为空,直接再回车就进入了 MySQL 数据库操作里了。
MySQL 编码设置
配置文件设置
在 my.ini 文件里写入以下配置
1 | [client] |
如果没有 my.ini 配置文件,则通过复制 my-default.ini 文件为 my.ini文 件再进行设置。
重启 MySQL 服务让设置生效:先关闭服务 net stop mysql
, 再启动服务 net start mysql
.
创建数据库和表规范
创建数据库时带上编码集:
1 | create database db_test character set 'utf8' collate 'utf8_general_ci'; |
创建表带上编码集合和引擎:
1 | create table tb_muser(id int not null auto_increment primary key,username char(10)) engine=InnoDB default charset=utf8; |
查看已经创建的数据库编码格式:
1 | show create database test; |
查看已经创建的表编码格式:
1 | show create table tb_muser; |
编码排错语句
显示所有设置项目的编码:
1 | show variables like 'character_%'; |
通过形似这样 set character_set_NAME=utf8/gbk
的命令设置上面查看到的非标准编码
1 | set character_set_server=utf8; |
MySQL 常用命令
连接 MySQL
连接命令:
1 | mysql -h 服务器ip -u 用户名 -p // 连接通用命令 |
例如:
1 | mysql –h localhost/127.0.0.1 –u root –p // 连接本地计算机的 MySQL |
root 密码重置
由于初始密码为空,如果想修改密码,首先要退出数据库,然后
1 | mysqladmin -u root passwrod 1234 |
假设已经设置过密码了,又想修改,则命令如下:
方法一:
1 | mysql -u root -p //需要先以 root 身份登录到数据库 |
方法二:
1 | mysql -u root -p //也需要登录 |
创建账户
grant 语句
1 | // grant语句 所有权限 所有数据库 用户 登录地点 用户密码 |
例如:
1 | grant reload,process on *.* to 'jiyi3'@'localhost'; |
insert 语句
1 | insert into user values('localhost/%','jiyi',PASSWORD('123456'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); |
注意:insert 语句最后都要加一句flush privileges; 以刷新权限列表。
MySQL 导入 SQL 文件
MySQL 导入命令:
1 | source /data/sql/createDB.sql; |
MySQL 备份命令:
1 | // 结构: |
MySQL 导入文本数据
1、文本数据应符合的格式:字段数据之间用 tab 键隔开,null 值用 \n 来代替.
例:
1 | 3 rose 深圳二中 1976-10-10 |
2、数据传入命令
1 | # load data local infile "文件名" into table 表名; |
注意:你最好将文件复制到 \mysql\bin 目录下,并且要先用
use
命令打表所在的库。
数据库和表语句
1 | create database jiyidata; // 创建 jiyidata 数据库 |
创建表
1 | create table jiyitable(id int not null primary key auto_increment,phonenumber varchar(20) not null unique); |
- 不为空
not null
- 主键
primary key
- 自增长
auto_increment
- 唯一
unique
- 默认值
default '1'
默认为1 id int(11) unsigned
代表 int 无符号,即都表示正数,这样比 signed 表示的更多数,其实当我们在选择使用 int 的类型的时候,不论是 int(3) 还是 int(11),它在数据库里面存储的都是 4 个字节的长度,在使用 int(3) 的时候如果你输入的是 10,会默认给你存储位 010,也就是说这个 3 代表的是默认的一个长度,当你不足 3 位时,会帮你不全,当你超过 3 位时,就没有任何的影响。
表基本操作语句
查、增、改、删
1 | // sql语句大概分为4中情况 |