MySQL---下载安装、数据库基本操作
1、下载安装
1.1 下载:
1 http://dev.mysql.com/downloads/mysql/
1.2 解压
1.3 初始化
1 cd c:\mysql-5.7.16-winx64\bin (终端输入,进入可执行文件目录,下同)
2
3 mysqld --initialize-insecure
1.4 启动mysql服务
1 mysqld # 启动MySQL服务,在终端输入(下同)
1.5 启动MySQL客户端并连接MySQL服务
由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码
1 # 进入可执行文件目录
2 cd c:\mysql-5.7.16-winx64\bin
3
4 # 连接MySQL服务器
5 mysql -u root -p
6
7 # 提示请输入密码,直接回车
输入回车,见下图表示安装成功:
1.6 添加环境变量
1.7 将MySQL服务制作成windows服务
1 # 制作MySQL的Windows服务,在终端执行此命令:
2 "c:\mysql-5.7.16-winx64\bin\mysqld" --install
3
4 # 移除MySQL的Windows服务,在终端执行此命令:
5 "c:\mysql-5.7.16-winx64\bin\mysqld" --remove
注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
1 # 启动MySQL服务
2 net start mysql
3
4 # 关闭MySQL服务
5 net stop mysql
1.8 Linux 版本
安装:
1 yum install mysql-server
服务端启动:
1 mysql.server start
客户端连接:
1 连接:
2 mysql -h host -u user -p
3
4 常见错误:
5 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
6 退出:
7 QUIT 或者 Control+D
2、数据库操作
2.1 显示数据库
1 # 终端输入
2
3 SHOW DATABASES;
4
5 # 不区分大小写,下同
默认数据库:
mysql - 用户权限相关数据
test - 用于用户测试数据
information_schema - MySQL本身架构相关数据
2.2 创建数据库
1 # utf-8
2 CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3
4 # gbk
5 CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
2.3 使用数据库
1 USE db_name;
显示当前使用的数据库中所有表:SHOW TABLES;
2.4 用户管理
1 创建用户
2 create user '用户名'@'IP地址' identified by '密码';
3 删除用户
4 drop user '用户名'@'IP地址';
5 修改用户
6 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
7 修改密码
8 set password for '用户名'@'IP地址' = Password('新密码')
9
10 PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
2.5 授权管理
1 show grants for '用户'@'IP地址' -- 查看权限
2 grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
3 revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限
1 all privileges 除grant外的所有权限
2 select 仅查权限
3 select,insert 查和插入权限
4 ...
5 usage 无访问权限
6 alter 使用alter table
7 alter routine 使用alter procedure和drop procedure
8 create 使用create table
9 create routine 使用create procedure
10 create temporary tables 使用create temporary tables
11 create user 使用create user、drop user、rename user和revoke all privileges
12 create view 使用create view
13 delete 使用delete
14 drop 使用drop table
15 execute 使用call和存储过程
16 file 使用select into outfile 和 load data infile
17 grant option 使用grant 和 revoke
18 index 使用index
19 insert 使用insert
20 lock tables 使用lock table
21 process 使用show full processlist
22 select 使用select
23 show databases 使用show databases
24 show view 使用show view
25 update 使用update
26 reload 使用flush
27 shutdown 使用mysqladmin shutdown(关闭MySQL)
28 super 使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
29 replication client 服务器位置的访问
30 replication slave 由复制从属使用
31
32 对于权限
1 对于目标数据库以及内部其他:
2 数据库名.* 数据库中的所有
3 数据库名.表 指定数据库中的某张表
4 数据库名.存储过程 指定数据库中的存储过程
5 *.* 所有数据库
1 用户名@IP地址 用户只能在该IP下才能访问
2 用户名@192.168.1.% 用户只能在该IP段下才能访问(通配符%表示任意)
3 用户名@% 用户可以再任意IP下访问(默认IP地址为%)
1 grant all privileges on db1.tb1 TO '用户名'@'IP'
2
3 grant select on db1.* TO '用户名'@'IP'
4
5 grant select,insert on *.* TO '用户名'@'IP'
6
7 revoke select on db1.tb1 from '用户名'@'IP'
特殊的:
1 flush privileges,将数据读取到内存中,从而立即生效。
1 # 启动免授权服务端
2 mysqld --skip-grant-tables
3
4 # 客户端
5 mysql -u root -p
6
7 # 修改用户名密码
8 update mysql.user set authentication_string=password('666') where user='root';
9 flush privileges;