1、登录/退出基本操作
登录:mysql [-h服务器地址] -u登录名 -P端口号 -p
或登录:mysql [--host=服务器地址] --user=用户名 --port=端口 --password
退出:quit; 或 exit;
注意:登录数据库系统后,需要使用“set names 编码名;”来设定当前连接数据库的“所在的环境变量”,即当前跟数据库打交道的“客户端”本身的编码。通常来说:
ocmd客户端中是固定的使用gbk编码,
o而php网页中,是该网页文件的编码(现在主流都是utf8)。
mysql -u root -p
password:****
set names utf8;
连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;
2、修改用户密码 登录进去
修改自己密码: set password = password(‘新密码’);
set password = password("***");
修改他人密码(必须有修改权限):
set password for ‘用户名’@’允许其登录的地址’ = password(‘新密码’);
set password for 'root'@'localhost' = password('***');
3、mysql中的用户
(1)创建用户
语法形式:
create user ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
说明:
1,创建的用户需同时指定该用户可以在哪个地址进行登录。
其中“%”代表“任何地址”。
2,用户创建之后,自动在mysql的user表中添加了一条记录,但该用户还没有权限。
(2)删除用户
drop user ‘用户名’@’允许其登录的地址’;
(3)权限分配
增加权限:
grant 权限名1,权限名2, .... on 数据库名.对象名 to ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
说明:
1权限名就是:’select’, ‘update’, ‘delete’,等等。其中ALL 表示“所有权限”,或all privileges也一样
2对象名:就是一个数据库中“装”的东西,表是最常见的,也可以是视图,存储过程,存储函数等。 now()
其中: *.* 表示所有数据中的所有对象
某数据库名.* 表示该数据库中的所有对象——这个商业上常用。
3,identified by ‘密码’用于给一个用户在此时修改密码,不写也可以,那就不修改密码。
4,但同时该语句也可以创建用户(如果不存在),但此时identified by ‘密码’必须写。
grant all on z_0705.* to 'root'@'localhost' identified by '***';
(4)删除权限
revoke 权限名1,权限名2, .... on 数据库名.对象名 from ‘用户名’@’允许其登录的地址’;
revoke all on z_0705.* from 'z_0705'@'localhost';
4、表的其他操作:
(1)显示所有数据库 show databases;
(2)进入数据库 use 数据库名;
通常,要进行数据中的数据表和数据的操作,都必须先“进入”该数据库。
问题:在cmd使用set names utf8,然后得到乱码了?
1,cmd,必须使用gbk
2,php文件中,可以根据文件的编码来定:utf8编码就是用utf8,ANSI编码(gbk)就用gbk
(3)显示所有表show tables:
(4)显示表结构desc 表名;
(5)显示表的创建语句: show create table 表名;
(7)从已有表复制表结构:create table [if not exists] 新表名 like 原表名;
从已有表复制表结构:create table [if not exists] 新表名 select * from 原表名 where 1<>1;(不推荐)
5、备份恢复数据库
备份数据库:(在mysql服务外面执行)
mysqldump -h服务器地址 -u登录名 -p 要备份的数据库名 > 要保存为的文件
恢复数据库:
mysql -h服务器地址 -u登录名 -P端口号 -p 数据库名 < 文件名
注意:通常该数据库名是需要先建立(存在):
mysqldump -h localhost -u root -p z_0705>D:mysql.sql mysql -h localhost -u root -p z_0705<D:mysql.sql