您的位置:首页 > 数据库 > MySQL

MySql 5.7中添加用户,新建数据库,用户授权,删除用户,修改密码,导入导出sql文件,设置字符集

2017-08-31 10:06 1251 查看
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;


mysql导入导出sql文件

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字符集。
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默认字符集的方法,希望对您学习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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 数据库
相关文章推荐