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

来源:互联网 发布:java观察者设计模式 编辑:程序博客网 时间:2024/06/05 22:32

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字符集。

  1. mysql> show variables like '%char%';  
  2. +--------------------------+-------------------------------------+------  
  3. | Variable_name            | Value                               |......  
  4. +--------------------------+-------------------------------------+------  
  5. | character_set_client     | utf8                                |......   -- 客户端字符集  
  6. | character_set_connection | utf8                                |......  
  7. | character_set_database   | utf8                                |......   -- 数据库字符集  
  8. | character_set_filesystem | binary                              |......  
  9. | character_set_results    | utf8                                |......  
  10. | character_set_server     | utf8                                |......   -- 服务器字符集  
  11. | character_set_system     | utf8                                |......  
  12. | character_sets_dir       | D:\MySQL Server 5.0\share\charsets\ |......  
  13. +--------------------------+-------------------------------------+------ 
  14. 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字符集。

  1. mysql> show table status from sqlstudy_db like '%countries%';  
  2. +-----------+--------+---------+------------+------+-----------------+------  
  3. | Name      | Engine | Version | Row_format | Rows | Collation       |......  
  4. +-----------+--------+---------+------------+------+-----------------+------  
  5. | countries | InnoDB |      10 | Compact    |   11 | utf8_general_ci |......  
  6. +-----------+--------+---------+------------+------+-----------------+------ 

三、查看MySQL数据列(column)的MySQL字符集。

  1. mysql> show full columns from countries;  
  2. +----------------------+-------------+-----------------+--------  
  3. | Field                | Type        | Collation       | .......  
  4. +----------------------+-------------+-----------------+--------  
  5. | countries_id         | int(11)     | NULL            | .......  
  6. | countries_name       | varchar(64) | utf8_general_ci | .......  
  7. | countries_iso_code_2 | char(2)     | utf8_general_ci | .......  
  8. | countries_iso_code_3 | char(3)     | utf8_general_ci | .......  
  9. | address_format_id    | int(11)     | NULL            | .......  
  10. +----------------------+-------------+-----------------+--------  

修改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

  1. +--------------------------+---------------------------------+   
  2. | Variable_name | Value |   
  3. +--------------------------+---------------------------------+    
  4. | character_set_client | utf8 |   
  5. | character_set_connection | utf8 |   
  6. | character_set_database | utf8 |  
  7. | character_set_filesystem | binary |   
  8. | character_set_results | utf8 |   
  9. | character_set_server | utf8 |   
  10. | character_set_system | utf8 |   
  11. | character_sets_dir | D:"mysql-5.0.37"share"charsets" |   
  12. +--------------------------+---------------------------------+  

(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令

  1. mysql> SET character_set_client = utf8 ;  
  2. mysql> SET character_set_connection = utf8 ;   
  3. mysql> SET character_set_database = utf8 ;   
  4. mysql> SET character_set_results = utf8 ;    
  5. mysql> SET character_set_server = utf8 ;   
  6.  
  7. mysql> SET collation_connection = utf8 ;  
  8. mysql> SET collation_database = utf8 ;   
  9. mysql> SET collation_server = utf8 ; 

一般就算设置了表的mysql默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

  1. SET NAMES 'utf8';  

它相当于下面的三句指令:

  1. SET character_set_client = utf8;  
  2. SET character_set_results = utf8;   
  3. 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
阅读全文
1 0
原创粉丝点击