mysql的启动与关闭
启动
/etc/init.d/mysql start
多实例使用自建脚本启动
2种关闭数据库方法
mysqladmin -uroot -p密码 shutdown #优雅关闭
/etc/init.d/mysqld stop
登录mysq
命令mysql 常用参数 mysql -u -p -P -h -S
#-u指定登录用户 -p用户密码 -P指定端口号 -h远程连接mysql的IP -s多实例登录时指定mysql的sock文件 -e在外部执行sql命令
mysql -uroot -p123456 -P 3306 -h 192.168.1.1 -S /data/3306/mysql.sock
本地mysql登录只用-u -p 多实例加-S 非远程不用-P-h
mysql设置密码
新建无密码用户设置密码
mysqladmin -uroot password 密码
修改密码
mysqladmin -uroot -p原密码 password 新密码 #多实例指sockt
在mysql数据库内修改密码
mysql> use mysql; #进入mysql库 mysql> update user set password=password("123456") where user=\'root\';
#更改原user表内的root行的password里的数据改为123456 前边加password用于数据加密 mysql> flush privileges; #刷新
mysql的基本操作
show 查看 use进入 describe显示数据表的结构
show status; #查看mysql状态
show databases; #查看库所有库
show databases like \'库名\'; #查看库内的表
show tables; #查看表 需要先\'use 库名\'进入该库才能查看
show grants; #查看授权用户权限
show grants for \'root\'@\'localhost\'; #查看指定用户权限
use 库名 #进入一个库相当于linux的cd命令
status; #显示当前数据库状态
flush privileges; #刷新权限
Mysql~sql语言
1.数据查询语言DQL select #查看
2.数据操作语言DML insert update和delete #插入 更新和删除开发常用
3.事务处理语言TPL begintransaction commit和rollback #不用
4.数据控制语言DCL grant revoke #设置用户权限和删除用户权限 运维必备
5.数据定义语言DDL create drop #创建和删除 运维必备
6.指针控制语言CCL #不用
表格例子:
名字 年龄 工作 工资 编号
秦穆公 50 秦王 5000 1
晋文公 40 晋王 6000 2
齐桓公 60 齐王 7000 3
1.create建库建表
建库格式:create databa 数据库名;
mysql> create database 春秋五霸; #建库 如果编译没指定字符集 默认为拉丁文 可在建库时指定字符集
建表格式:create table 表名;
use 春秋五霸 #进入春秋五霸库 create table 春秋五霸(名字 char(20) not null,年龄 char(20) default "",工作 char(20) not null,工资 int(20) not null,编号 int not null,primary key(编号));
#在春秋五霸库中建一个叫春秋五霸的表 表内记录了名字,年龄,工作,工资,编号
not null 表示对应表内内容不能为空 ,default默认,如果不给于值按默认写 primary key(编号)索引关键字 为编号 char 字符类型 int数字型
参考http://www.runoob.com/mysql/mysql-data-types.html
2.drop删库删表
格式 drop table 数据库.表名;
drop database 数据库名;
drop table 春秋五霸.春秋五霸; #删除春秋五霸库中的春秋五霸表 如果use到了春秋五霸库则可以直接drop table 春秋五霸;删除春秋五霸表
drop database 春秋五霸; #删除春秋五霸库
3.insert 插入新数据
格式: insert into 表名(字段1,字段2,.........) values(\'字段值1\',\'字段值2\'......);
insert into 春秋五霸(名字,年龄,工作,工资,编号)values(\'秦穆公\',\'50\',\'秦王\',\'5000\',\'1\'); insert into 春秋五霸(名字,年龄,工作,工资,编号)values(\'晋文公\',\'40\',\'晋王\',\'6000\',\'2\'); insert into 春秋五霸(名字,年龄,工作,工资,编号)values(\'齐桓公\',\'60\',\'齐王\',\'7000\',\'3\');
insert into 春秋五霸 values(\'越王\',\'70\',\'越王\',\'8000\',\'4\'); #如果需要按格式正行插入可以不写字段 直接values写字段值
4.update更改原有数据
update 表名 set 字段名1=\'新值1\',字段名2=\'新值2\' where 条件表达式;
update 春秋五霸 set 名字=\'越王\',年龄=\'70\',工作=\'越王\',工资=\'8000\' where 编号=4;
#更新春秋五霸表内和穆公数据 通过where 匹配编号4匹配到和穆公 where支持 and or
5.delete删除不需要的数据
delete from 表名 where 条件表达式;
delete from 春秋五霸 where 编号=6; #删除上图编号6的穆公内容
模糊删除:
delete from 表 where 名字 like \'%公\'; #删除以公字结尾的
6.select查询语句
格式:select 字段名1,字段名2,..... from 表名 where 条件表达式;
字段名1 看什么内容,from从哪个表看 where匹配橫行内容
select * from 春秋五霸; #看春秋五霸所有内容 select 名字 from 春秋五霸; #只看春秋五霸所有名字 select * from 春秋五霸 where 名字=\'晋文公\'; #只看晋文公的资料 select 名字 from 春秋五霸 where 名字=\'晋文公\'; #只看晋文公的名字
select * from 春秋五霸 where 名字 like \'%王%\'; #模糊查找 如果只记得名字里带个王字 可以(where 名字 like \'%王%\')通过正则匹配查找
7.grand用户权限设置
语法:grant 权限 on 库.表 to \'用户名\'@\'允许主机\' identified by \'密码\'; #如果用户不存在直接创建用户
用户不存在=create user \'xixi\'@\'localhost\' identified by \'123456\';#创建用户+grant all on *.* to \'hehe\'@\'localhost\';#给与权限
例:
grant all on *.* to \'hehe\'@\'localhost\' identified by \'123456\'; #创建本地mysql用户hehe 给与权限all(所有)密码为:123456
grant all on *.* to \'hehe\'@\'192.168.1.%\' identified by \'123456\' #创建用户hehe 允许192.168.1.0网段连接
#@后可以跟网段 IP localhost 和域名
8.revoke撤销用户权限
语法:revoke 撤销的权限 on 库.表 from \'用户\'@\'允许主机\'
revoke drop on *.* from \'hehe\'@\'localhost\'; #撤销呵呵用户 对所有库所有表的drop权限 只能revoke掉grant给与过的权限
9.mysql通配符
-任意单个长度字符
%任意长度任意字符
10.select扩展
select user(); #当前登录mysql的用户 select now(); #显示当前时间 select user(),now(); #显示当前用户和时间 select database(); #显示当前所在的库