`
dingjun1
  • 浏览: 211856 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL数据库

阅读更多
1、备份InnoDB类型的数据表:
a)数据库文件
b)ib_logfile0,ib_logfile1,ibdata1等日志类的文件

2、导入脚本文件
   $>source path\filename.sql
   (例如:)mysql>source e:\tbl_company.sql

3、建表示例
drop table if exists `jlx`.`tbl_company` ;

CREATE TABLE `jlx`.`tbl_company` (
  `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  `company_code` VARCHAR(45) NOT NULL COMMENT '合作单位编号',
  `company_name` VARCHAR(200) NOT NULL COMMENT '合作单位名称',
  `type` varchar(45) not null comment '类别',
  `linkman` VARCHAR(40) COMMENT '联系人',
  `link_tel` VARCHAR(50) COMMENT '联系电话',
  `shop_card` varchar(100) comment '营业执照号',
  `fax` varchar(50) comment '传真',
  `address` varchar(200) comment '地址',
  `post_code` varchar(20) comment '邮编',
  `memo` varchar(200) comment '备注',
  `is_lock` CHAR(1) NOT NULL COMMENT '是否作废',
  PRIMARY KEY (`id`),
  UNIQUE INDEX `Index_2`(`company_code`)
)
ENGINE = InnoDB
CHARACTER SET utf8 COLLATE utf8_general_ci
COMMENT = '合作单位';


1、创建、修改库字符集:
create database db_tt default character set utf8;
alter database db_tt default character set GBK;

2、备份数据库
shell>mysqldump -uroot -p123456 db_lvyou>2009_12_2.sql
3、恢复数据库
shell>mysql -u name -p pwd database<path
例如:
shell>mysql -uroot -p123456 db_lvyou<d:\2009_12_2.sql

备份部分表:
shell>mysqldump -u username -p databasename tablename1 tablename2>path



3、mysql的删除动作不能带有本表的查询动作,意思是你删除A表的东西不能以A表的信息为条件,如下不可以:
delete from A where aa in (select bb from A);
你可以通过建另外一张表,两张表匹配关系操作,如:
create table t_b as select * from t_a group by empno;
delete from t_a where  not exists (select 1 from t_b where t_a.empid=t_b.empid);



mysql alter 语句用法,添加、修改、删除字段等

//主键549830479

   alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);

//增加一个新列549830479

   alter table t2 add d timestamp;
alter table infos add ex tinyint not null default '0';

//删除列549830479

   alter table t2 drop column c;

//重命名列549830479

   alter table t1 change a b integer;


//改变列的类型549830479

   alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';

//重命名表549830479

   alter table t1 rename t2;

加索引549830479

   mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);

加主关键字的索引549830479

mysql> alter table tablename add primary key(id);

加唯一限制条件的索引549830479

  mysql> alter table tablename add unique emp_name2(cardnumber);

删除某个索引549830479

   mysql>alter table tablename drop index emp_name;

修改表:549830479

增加字段:549830479

   mysql> ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及类型:549830479

   mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段:549830479

   mysql> ALTER TABLE table_name DROP field_name;


========================================================
1.CREATE USER

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']

         [, user [IDENTIFIED BY [PASSWORD] 'password']] ...

CREATE USER用于创建新的MySQL账户。要使用CREATE USER,您必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。对于每个账户,CREATE USER会在没有权限的mysql.user表中创建一个新记录。如果 账户已经存在,则出现错误。

使用自选的IDENTIFIED BY子句,可以为账户给定一个密码。user值和 密码的给定方法和GRANT语句一样。特别是,要在纯文本中指定密码,需忽略PASSWORD关键词。要把 密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD。
2.使用GRANT语句

最好的方法是使用GRANT语句,因为这样更精确,错误少。从MySQL 3.22.11起提供了GRANT;它的主要用途是来给帐户授权的,但也可用来建立新帐户并同时授权。注意:当mysql运行于no_auto_create_user时要提供新建用户的密码,否则不能创新用户。
下面的示例说明如何使用MySQL客户端程序来设置新用户。
首先,使用MySQL程序以MySQL root用户来连接服务器:

shell> MySQL --user=root MySQL

如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供--password或-p选项。

以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'

    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';

mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';

用GRANT语句创建的账户有下面的属性:

·         其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。(user表排序的讨论要参考mysql手册)。

·         一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。

·         一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
3.直接操作MySQL授权表

    除了GRANT,你可以直接用INSERT语句创建相同的账户,然后使用FLUSH PRIVILEGES告诉服务器重载授权表。

shell> mysql --user=root mysql

mysql> INSERT INTO user

         ->          VALUES('localhost','monty',PASSWORD('some_pass'),

         ->          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO user

         ->          VALUES('%','monty',PASSWORD('some_pass'),

         ->          'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO user SET Host='localhost',User='admin',

         ->          Reload_priv='Y', Process_priv='Y';

mysql> INSERT INTO user (Host,User,Password)

         ->          VALUES('localhost','dummy','');

mysql> FLUSH PRIVILEGES;

当你用INSERT创建账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。否则,只有重启服务器后更改方会被注意到。使用 GRANT,则不需要使用FLUSH PRIVILEGES。

用INSERT使用PASSWORD()函数是为了加密密码。GRANT语句为你加密密码,因此不需要PASSWORD()。

'Y'值启用账户权限。对于admin账户,还可以使用更加可读的INSERT扩充的语法(使用SET)。

在为dummy账户的INSERT语句中,只有user表中的Host、User和Password列记录为指定的值。没有一个权限列为显式设置,因此MySQL将它们均指定为 默认值'N'。这样等同于GRANT USAGE的操作。

请注意要设置超级用户账户,只需要创建一个权限列设置为'Y'的user表条目。user表权限为全局权限,因此其它 授权表不再需要条目。
4.举几个应用grant创建帐户和授权的例子

下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。

要想用GRANT创建账户,使用下面的语句:

shell> MySQL --user=root MySQL

shell> mysql --user=root mysql

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

         ->          ON bankaccount.*

         ->          TO 'custom'@'localhost'

         ->          IDENTIFIED BY 'obscure';

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

         ->          ON expenses.*

         ->          TO 'custom'@'whitehouse.gov'

         ->          IDENTIFIED BY 'obscure';

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

         ->          ON customer.*

         ->          TO 'custom'@'server.domain'

         ->          IDENTIFIED BY 'obscure';

这3个账户可以用于:

·         第1个账户可以访问bankaccount数据库,但只能从本机访问。

·         第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。

·         第3个账户可以访问customer数据库,但只能从主机server.domain访问。

要想不用GRANT设置custom账户,使用INSERT语句直接修改 授权表:

shell> mysql --user=root mysql

mysql> INSERT INTO user (Host,User,Password)

         ->          VALUES('localhost','custom',PASSWORD('obscure'));

mysql> INSERT INTO user (Host,User,Password)

         ->          VALUES('whitehouse.gov','custom',PASSWORD('obscure'));

mysql> INSERT INTO user (Host,User,Password)

         ->          VALUES('server.domain','custom',PASSWORD('obscure'));

mysql> INSERT INTO db

         ->          (Host,Db,User,Select_priv,Insert_priv,

         ->          Update_priv,Delete_priv,Create_priv,Drop_priv)

         ->          VALUES('localhost','bankaccount','custom',

         ->          'Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO db

         ->          (Host,Db,User,Select_priv,Insert_priv,

         ->          Update_priv,Delete_priv,Create_priv,Drop_priv)

         ->          VALUES('whitehouse.gov','expenses','custom',

         ->          'Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO db

         ->          (Host,Db,User,Select_priv,Insert_priv,

         ->          Update_priv,Delete_priv,Create_priv,Drop_priv)

         ->          VALUES('server.domain','customer','custom',

         ->          'Y','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES;



前3个INSERT语句在user表中加入条目,允许用户custom从各种主机用给定的密码进行连接,但不授予全局权限(所有权限设置为 默认值'N')。后面3个INSERT语句在user表中加入条目,为custom授予bankaccount、expenses和customer数据库权限,但只能从合适的主机访问。通常若直接修改 授权表,则应告诉服务器用FLUSH PRIVILEGES重载授权表,使权限更改生效。

如果你想要让某个用户从给定域的所有机器访问(例如,mydomain.com),你可以在账户名的主机部分使用含'%'通配符的GRANT语句:

mysql> GRANT ...

         ->          ON *.*

         ->          TO 'myname'@'%.mydomain.com'

         ->          IDENTIFIED BY 'mypass';

要想通过直接修改授权表来实现:

mysql> INSERT INTO user (Host,User,Password,...)

         ->          VALUES('%.mydomain.com','myname',PASSWORD('mypass'),...);

mysql> FLUSH PRIVILEGES;
5.创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。

从MySQL删除用户账户

要想移除账户,应使用DROP USER语句。

-----------------赋权限------------------------

mysql> grant usage on *.* to username@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on newdb.* to username@localhost ;
Query OK, 0 rows affected (0.00 sec)
分享到:
评论

相关推荐

    h2数据导入mysql数据库(看评论酌情下载)

    h2 数据库导入 MySQL 数据库 h2 数据库导入 MySQL 数据库是指将 h2 数据库中的数据导入到 MySQL 数据库中,以便更好地存储和管理数据。下面将详细介绍 h2 数据库导入 MySQL 数据库的步骤。 首先,需要创建一个 ...

    Informatica连接Mysql数据库案例

    Informatica 连接 Mysql 数据库案例 Informatica 是一个功能强大的数据集成平台,支持多种数据源的连接和集成,本文档将详细介绍 Informatica 连接 Mysql 数据库的步骤和配置。 Informatica 连接 Mysql 数据库的...

    MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    "国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程。 MySQL 是一种关系型数据库管理系统,广泛应用于各种领域。为提高学生的实践能力,...

    VB6.0连接MySQL数据库

    本文将详细地介绍新手如何使用VB6.0连接MySQL数据库,并提供清晰的步骤。 首先,要使VB6.0能够连接到MySQL数据库,需要在VB6.0的应用程序中引用MySQL的数据库引擎。由于VB6.0本身并不直接支持MySQL,所以一般需要...

    MySQL数据库应用形考实验1-4全答案.zip

    MySQL数据库是一种广泛应用于Web开发和企业级数据存储的开源关系型数据库管理系统。在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到...

    基于Docker的MySQL数据库性能分析.pdf

    "基于Docker的MySQL数据库性能分析" 本文探讨了基于Docker的MySQL数据库性能分析,旨在解决传统网站开发流程中由于不同的应用及其所依赖的环境的复杂关系而造成的资源浪费和项目风险。文章通过设计了MySQL的性能...

    MySQL数据库任务驱动式教程(第3版)(微课版)-课程标准.doc.docx

    "MySQL数据库任务驱动式教程(第3版)(微课版)-课程标准.doc.docx" 本资源是一个关于 MySQL 数据库的教程,旨在帮助学生学习 MySQL 数据库的基本概念和操作。该教程涵盖了 MySQL 的基本概念、数据类型、SQL 语句、...

    matlab访问mysql数据库教程及代码

    MATLAB 访问 MySQL 数据库教程及代码 MATLAB 是一个功能强大的数学计算软件,而 MySQL 是一个流行的关系数据库管理系统。在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步...

    MySQL数据库基础与实例教程所有资源

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,以其高效、可靠和易于学习的特性深受开发者喜爱。本教程将全面介绍MySQL的基础知识,并通过实例帮助你掌握其核心操作。 首先,我们来了解一下MySQL的基本...

    MySQL数据库巡检手册 MySQL DBA必备

    MySQL数据库巡检手册是MySQL数据库管理员(DBA)在进行数据库管理和维护工作中非常重要的参考资料。巡检手册包含了数据库性能、安全、运行状况等方面的检查项,以确保数据库能够正常稳定运行,及时发现并解决潜在问题...

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    国家开放大学 数据库运维 形考一 MySQL数据库服务器配置

    MySQL数据库服务器配置 MySQL数据库服务器配置是国家开放大学数据库运维 形考一的重要组成部分。通过这个实验,我们将掌握 MySQL 的安装方法,了解 MySQL 服务器的组成,掌握 MySQL 服务器的配置方法。 MySQL安装...

    MySQL数据库-RevD.pdf

    MySQL数据库概览 MySQL是由瑞典MySQL AB公司开发的小型数据库管理系统,它属于开源软件范畴,意味着其源代码是开放的,可以被公众查看和修改。MySQL广泛应用于从大型企业系统到专用的嵌入式应用系统中,支持各种不同...

    mysql数据库结构对比工具

    支持的数据库:MS SQL Server、 PosgresSql、MySQL 数据库数据对比工具:可以针对两个数据进行表结构和数据的对比。1、结构对比:如开发库和正式库之间的结构和数据同步,此工具可以告诉您哪个表结构有字段的增加...

    C#实现Mysql数据库操作实例(含源码)

    在本文中,我们将深入探讨如何使用C#语言来实现对MySQL数据库的操作。C#是一种广泛应用于Windows和Web应用程序开发的强大编程语言,而MySQL则是一种高效、开源的关系型数据库管理系统。结合两者,我们可以创建功能...

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 全套PPT课件资源集合 共26个章节 含全部源代码.rar

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...

    美国城市地区Mysql数据库

    【标题】"美国城市地区Mysql数据库"是一个包含详尽美国城市和地区信息的数据库,它在MySQL环境中运行,提供了一种高效的方式来存储和查询美国各地的地理数据。 【描述】这个数据库涵盖了美国51个行政区(包括50个州...

    C#连接操作MySQL数据库进行添加、修改、删除、查询等操作的演示

    鉴于MySQL数据库的流行与强大,决定多学习使用。现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。以Visual Studio 2012平台下的示例形式写下来,供以后查看。 一、新建一个...

Global site tag (gtag.js) - Google Analytics