mysql学习笔记

mysql远程访问
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'root' WITH GRANT

OPTION;
(root是用户名,后面的root是密码)

http://dev.mysql.com/doc/refman/5.1/zh/credits.html

在windows上安装mysql比较简单,我们只需要按照安装向导进行操作就可以了
在安装后,我们可以选择给mysql的root用户设置密码、或者是允许非本机的其他机器用

root用户连接到
mysql数据库上
对于安装为windows服务之后,我们要启动或关闭mysql数据库只需要在windows服务关系

器中启动、关闭就可以了
对于mysql也可以在cmd命令行中启动和关闭
启动mysql的命令为
mysqld-nt -uroot --console
mysqld-nt 为mysql服务启动程序 相应的还有mysqld-max-nt等等
-u 参数表示后面的为mysql的用户
--console 为从控制台启动
关闭mysql的命令为
mysqladmin -uroot -ppassword shutdown
-u 后面为mysql用户
-p 用户对应的密码
也可以在命令行上将mysql安装为服务,可以使用如下方法
mysqld-nt --install
移出服务的方法为
mysqld-nt --remove

显示mysql版本 mysql --version
你可以通过发出GRANT语句增加新用户:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
           IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

这些GRANT语句安装3个新用户:

monty
可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令

('something'做这个。注意,我们必须对monty@localhost和monty@"%"发出GRANT语句。

如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时

由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以

user表排列顺序看更早到来。
admin
可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。

这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,

还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另

一个GRANT语句授权。
dummy
可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'--

USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的

权限。

mysql中将数据库和表备份为sql语句的方法为

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

mysqldump -uroot -proot databasename > test.sql
-u 用户名
-p 密码
databasename 要导出的数据库名
> 导出到的sql文件

--default-character-set=name
                     设置缺省的字符集,对导出具有中文的数据特别有用。
-A, --all-databases 导出所有的数据库,跟使用-B参数然后接上所有的数据库名称具

有相同的功能。
--add-drop-database  加上该参数之后,就会在新建数据库的语句之前加上 'DROP

DATABASE'
--add-drop-table     加上该参数之后,就会在新建表的语句之前加上 'drop table'

.
 -B, --databases     这个参数用户指定要导出的数据库名称,可以做到选择性的导出

数据库,并且会在导出文件中加上'USE db_name;'
 

导入sql语句的方法为
若是有建库语句的话,则直接使用
mysql -uroot -proot < test.sql
若是没有建库的语句,则要先登录进去使用 create database  test;来建立一个名为

test(或者其他名称)的数据库。
然后使用
mysql -uroot -proot -Dtest < test.sql

等等这些方面就可以了
--default-character-set=name
                    设置客户端使用的缺省字符集
-D, --database=name 设置使用的数据库名                   
-f, --force          设置在sql语句中有错误时,也强制执行。 
-h, --host=name     连接的主机地址
-p, --password[=name]
                     连接数据库时,所使用的密码;若在-p后没有接密码,则会在控

制台提示输入密码          
                    
 -u, --user=name     连接数据库所使用的用户名       
 -V, --version       显示当前数据库客户端的版本。
 
 
修改root用户密码,并使修改生效
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

在MySQL 3.22和以上版本中,你可以使用SET PASSWORD语句:

shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');

 更改管理员密码

在一切正常后,要做的第一件事情是更改管理员的密码。你可以运行mysqladmin (请注

意,此命令不一定在你的path中,所以最好是转到此命令的目录中直接执行):

# mysqladmin -u root password newpassword

此命令把root用户的口令变成newpassword。当然你可以把口令换成其它,因为这个很容

易破解。

持功能。在本指南里面,我力图使过程简单明了,突出主题


  进入mysql时,你需要提供一个MySQL用户和此用户的口令。如果数据库运行在其它

机器上,而不是你所在的这台机器上,你需要指定主机名。
命令:
mysql -h <主机名> -u <用户名> -p <数据库名>
Enter password: ********

MYSQL 有缺省库mysql, 在此系统中,缺省的口令为空,打回车即可。
例如,在此机器上,你可以敲入:
# mysql -u root -p mysql
Enter password:
屏幕如下提示:
Welcome to the MySQL monitor. Commands end with ; or .
Your MySQL connection id is 459 to server version: 3.22.23a-log

Type 'help' for help.

mysql>

这就进入了mysql 的工作环境, 进入到名为mysql 的数据库中。
你可看见mysql>提示后的一些介绍信息:

提示符 mysql> 告诉你mysql准备为你输入命令。


退出MySQL
在你成功地连接后,你可以在mysql>提示下打入QUIT随时断开:
mysql> QUIT
Bye
你也可以键入control-D断开。

操作MySQL
  在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志

此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以

分号结束此语句的输入。

  在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志

此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以

分号结束此语句的输入。

创建数据库
命令:CREATE DATABASE <数据库名>
例如,建立一个名为 test 的数据库
mysql> CREATE DATABASE test;

删除数据库
命令: DROP DATABASE <数据库名>
例如,删除名为 test 的数据库
mysql> DROP DATABASE test

连接数据库

命令: USE <数据库名>
例如,如果test数据库存在,尝试存取它:
mysql> USE test
屏幕提示:
Database changed

建表
命令:CREATE TABLE <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例如,建立一个名为table_1的表,此表记录班上的人员及平均成绩,那么用字段 id 代

表编号,为数字类型,且编号唯一,不能为空, 缺省值为 0 ; 用字段 name 代表人名

,为字符型,不为空;用字段 degree 代表成绩,为数字型,可为空。编号id 为此表的

关键字。建表如下:
mysql> CREATE TABLE table_1 (
> id INT(4) DEFAULT '0' NOT NULL,
> name CHAR(20) NOT NULL
> degree DOUBLE(16,2) ,
> PRIMARY KEY(id));

删除表
命令:DROP TABLE <表名>
例如,删除表名为 table_1 的表
mysql> DROP TABLE table_1;

插入数据

命令:INSERT INTO <表名> [( <字段名1>[,..<字段名n > ])]
VALUES ( 值1 )[, ( 值n )]
例如,往表 test 中插入二条记录, 这二条记录表示:编号为1的名为joan 的成绩为

96.45, 编号为2 的名为jeanny 的成绩为82.99.
mysql> INSERT INTO test VALUES(1,'joan',96.45),(2,'jeanny',82.99);

查询表中的数据
命令: SELECT <字段1,字段2,...> FROM < 表名 > WHERE < 表达式 >
例如,查看表 test 中所有数据
mysql> SELECT * FROM test;
屏幕显示:
+----+-------------+----------+
| id | name | degree |
+----+-------------+----------+
| 1 | joan | 96.45 |
| 2 | jeanny | 82.99 |
+----+-------------+----------+ 

删除表中数据
命令: DELETE FROM < 表名 > WHERE < 表达式 >
例如,删除表 test 中编号为1 的记录
mysql> DELETE FROM test WHERE id=1;


字段类型


   1.INT[(M)]

   正常大小整数类型

   2.DOUBLE[(M,D)] [ZEROFILL]

   正常大小(双精密)浮点数字类型

   3.DATE

   日期类型。支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显

示DATE值,但是允许你使用字符串或数字把值赋给DATE列

   4.CHAR(M)

   定长字符串类型,当存储时,总是是用空格填满右边到指定的长度

   5.BLOB TEXT

   BLOB或TEXT类型,最大长度为65535(2^16-1)个字符。

   6.VARCHAR

 变长字符串类型

   1: 显示数据库
 
   SHOW DATABASES,

   2:当前选择的数据库,

   mysql> SELECT DATABASE();
   +------------+
   | DATABASE() |
   +------------+
   | test ;
   +------------+
   | DATABASE() |
   +------------+
   | test    |
   +------------+

  3: 当前数据库包含的表信息:

   mysql> SHOW TABLES;
   +---------------------+
   | Tables in test 
   mysql> SHOW TABLES;
   +---------------------+
   | Tables in test   |
   +---------------------+
   | mytable1      |
   | mytable2      |
   +---------------------+

  4: 获取表结构

   mysql> desc mytable1;
   +---------+-------------+------+-----+---------+-------+
   | Field  mysql> desc mytable1;
   +---------+-------------+------+-----+---------+-------+
   | Field  | Type  | Null | Key | Default | Extra |
   +---------+-------------+------+-----+---------+-------+
   | s1  | varchar(20) | YES |NULL  |    |
   +---------------------+------+-----+---------+-------+


mysql数据库的授权
   mysql>grant select,insert,delete,create,drop

   on *.* (或test.*/user.*/..)

   to 用户名@localhost

   identified by 密码;

   如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:

   mysql> grant usage

   -> ON test.*
   -> TO testuser@localhost;
   Query OK, 0 rows affected (0.15 sec)

   此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库

并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作

   mysql> GRANT select, insert, delete,update
   -> ON test.*
   -> TO testuser@localhost;
   Query OK, 0 rows affected (0.00 sec)

   此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以

及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:

   mysql> exit
   Bye

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值