1、新建用户
创建test用户,密码是1234。
mysql -u root -p CREATE USER “test”@”localhost” IDENTIFIED BY “1234”; #本地登录 CREATE USER “test”@”%” IDENTIFIED BY “1234”; #远程登录 quit mysql -utest -p #测试是否创建成功
2、为用户授权
a.授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
b.登录MYSQL,这里以ROOT身份登录:
mysql -u root -p
c.为用户创建一个数据库(testDB):
create database testDB; create database testDB default charset utf8 collate utf8_general_ci;
d.授权test用户拥有testDB数据库的所有权限:
grant all privileges on testDB.* to “test”@”localhost” identified by “1234”; flush privileges; #刷新系统权限表
e.指定部分权限给用户:
grant select,update on testDB.* to “test”@”localhost” identified by “1234”; flush privileges; #刷新系统权限表
f.授权test用户拥有所有数据库的某些权限:
grant select,delete,update,create,drop on . to test@”%” identified by “1234”; #”%” 表示对所有非本地主机授权,不包括localhost
g.项目案例:
CREATE USER "customer"@"%" IDENTIFIED BY "customer248"; grant all privileges on customer.* to "customer"@"%" identified by "customer248"; flush privileges;
3、删除用户
mysql -u root -p Delete FROM mysql.user Where User=”test” and Host=”localhost”; flush privileges; drop database testDB;
删除账户及权限:
drop user 用户名@’%’; drop user 用户名@ localhost;
4、修改指定用户密码
mysql -u root -p update mysql.user set authentication_string=password(“新密码”) where User=”test” and Host=”localhost”; flush privileges;
window下
1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u dbuser -p dbname users> dbname_users.sql 3.导出一个数据库结构 mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 常用source 命令 进入mysql数据库控制台,如 mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:/dbname.sql
1. 导入数据到数据库
mysql -uroot -D数据库名
1. 导入数据到数据库中得某个表
mysql -uroot -D数据库名 表名
D:\APMServ5.2.6\MySQL5.1\bin>mysqldump -u root -p erp lightinthebox_tags > ligh tinthebox.sql
linux下
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1、导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码
2、只导出表结构 mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql #/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录
二、导入数据库 1、首先建空数据库 mysql>create database abc;
2、导入数据库 方法一: (1)选择数据库 mysql>use abc; (2)设置数据库编码 mysql>set names utf8; (3)导入数据(注意sql文件的路径) mysql>source /home/abc/abc.sql; 方法二: mysql -u用户名 -p密码 数据库名 < 数据库名.sql #mysql -uabc_f -p abc < abc.sql
MySQL执行外部sql脚本文件命令是报错:unknown command '\'
指定字符集 --default-character-set=utf8,命令如下: mysql -uroot -p --default-character-set=utf8 test_server < test_service.sql
如果想在导入的过程中,观察日志(最好在sql文件所在的目录下执行)
mysql -uroot -p --default-character-set=utf8 数据库实例名
source test_service.sql;
参考:http://blog.csdn.net/yaonai2003/article/details/44514925
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
2个解决方法:
1.临时修改:mysql>set global max_allowed_packet=524288000;修改 #512M
2.修改my.cnf,需重启mysql。 www.2cto.com
在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):
max_allowed_packet=10M
MySQL字符集多种多样,下面为您列举了其中三种最常见的MySQL字符集查看方法,该方法供您参考,希望对您学习MySQL数据库能有所启迪。
一、查看MySQL数据库服务器和数据库MySQL字符集。
mysql> show variables like '%char%'; +--------------------------+-------------------------------------+------ | Variable_name | Value |...... +--------------------------+-------------------------------------+------ | character_set_client | utf8 |...... -- 客户端字符集 | character_set_connection | utf8 |...... | character_set_database | utf8 |...... -- 数据库字符集 | character_set_filesystem | binary |...... | character_set_results | utf8 |...... | character_set_server | utf8 |...... -- 服务器字符集 | character_set_system | utf8 |...... | character_sets_dir | D:\MySQL Server 5.0\share\charsets\ |...... +--------------------------+-------------------------------------+------ mysql> show variables like '%collation%'; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | gb18030_chinese_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+--------------------+二、查看MySQL数据表(table)的MySQL字符集。
mysql> show table status from sqlstudy_db like '%countries%'; +-----------+--------+---------+------------+------+-----------------+------ | Name | Engine | Version | Row_format | Rows | Collation |...... +-----------+--------+---------+------------+------+-----------------+------ | countries | InnoDB | 10 | Compact | 11 | utf8_general_ci |...... +-----------+--------+---------+------------+------+-----------------+------三、查看MySQL数据列(column)的MySQL字符集。
mysql> show full columns from countries; +----------------------+-------------+-----------------+-------- | Field | Type | Collation | ....... +----------------------+-------------+-----------------+-------- | countries_id | int(11) | NULL | ....... | countries_name | varchar(64) | utf8_general_ci | ....... | countries_iso_code_2 | char(2) | utf8_general_ci | ....... | countries_iso_code_3 | char(3) | utf8_general_ci | ....... | address_format_id | int(11) | NULL | ....... +----------------------+-------------+-----------------+--------mysql默认字符集能否进行修改呢?答案是肯定的,下面就将教您两种修改mysql默认字符集的方法,希望对您学习mysql默认字符集方面能有所启迪。
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8 character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = utf8 ; mysql> SET character_set_database = utf8 ; mysql> SET character_set_results = utf8 ; mysql> SET character_set_server = utf8 ; mysql> SET collation_connection = utf8 ; mysql> SET collation_database = utf8 ; mysql> SET collation_server = utf8 ;一般就算设置了表的mysql默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES 'utf8';它相当于下面的三句指令:
SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; 项目案例: SET character_set_client = utf8 ; SET character_set_connection = utf8 ; SET character_set_database = utf8mb4 ; SET character_set_results = utf8 ; SET character_set_server = utf8mb4 ;设置字符集 MySQL的默认编码是Latin1,不支持中文,要支持需要把数据库的默认编码修改为gbk或者utf8。 1、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可 2、打开my.cnf以后,
在[client]下面加上
default-character-set=utf8
在[mysqld]下面加上
default-character-set=utf8 init_connect='SET NAMES utf8'
保存并关闭
3、配置文件修改后要重启mysql服务才能生效: systemctl restart mysqld