Rumah > pangkalan data > tutorial mysql > MYSQL数据库具体操作_MySQL

MYSQL数据库具体操作_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-01 13:58:53
asal
736 orang telah melayarinya

    提示:本文描述了连接数据库服务器、更新用户密码、MySQL读取配置文件的顺序、重设置MySQL管理员密码的方法、NULL值、使用SQL变量、改变默认提示符、非优化的全数据表DELETE操作、MySQL事务处理示例。


1. 连接数据库服务器
$ ./mysql -h host_name -u user_name -p

-h host_name(--host=host_name),连接的数据库主机名,如果在本地主机上则可省略。

-u user_name(--user=user_name),数据库用户名,在unix系统上,如果系统的登录名与数据用户名一样,则可省略。在windows系统中,可通过设置环境变量USER来给出数据库用户名,如set USER=username。

-p(--password),提供数据库用户密码,有该选项mysql就会提示你输入密码。输入的密码以星号显示,以确保安全。也可直接在-p后写上密码(-p和密码间不能有空格),但这不安全,不推荐。

连接成功后,mysql数据库服务器会显示一些欢迎信息。接着就可用mysql>use database_name命令打开指定的数据库。

   
$ ./mysql -h host_name -u user_name -p database_name命令可直接打开指定数据库。

2. 更新用户密码
mysql>update user set password=passowrd('your passowrd') where host='%';

刷新权限设置:mysql>flush privileges;

3. MySQL读取配置文件的顺序
my.cnf是MySQL数据库的配置文件,它存在多个地方,在/etc目录,数据目录和用户主目录都有。放在不同位置,里面的选项有不同的作用范围,下面是MySQL读取配置文件的顺序和作用。

mysql 读取配置文件的顺序:
/etc/my.cnf              Global options.
DATADIR/my.cnf           Server-specific options.
defaults-extra-file      The file specified with the --defaults-extra-file option.
~/.my.cnf                User-specific options.
4. 重设置MySQL管理员密码的方法
有时我们会因为设置原因或时间长了忘记了数据库管理员的密码,使得我们被关在MySQL服务器外。MySQL服务器提供了一种方法可使我们在服务器上重设密码。在windows和linux/unix平台上操作稍有不同,下面分别介绍:

Linux/Unix平台下:

用 % kill -TERM PID关闭服务器,用-TERM信息可使服务器在关闭前把内存中的数据写入磁盘。如果服务器没有响应,我们可用% kill -9 PID来强制删除进程,但不建议这样做。这时内存中的数据不会写入磁盘,造成数据不完整。如果你是用mysql_safe脚本启动MySQL服务器的,这个脚本会监控服务器的运行情况并在它被终止时重启服务器,所以如需关闭服务器,要先终止该进程,然后再真正终止mysqld进程。

使用--skip-grant-tables参数启动MySQL Server,这时MySQL服务器将不使用权限表对连接操作进行验证。你就可在不提供root密码的情况下连接上服务器,并获得root的权限。

% mysqld_safe --skip-grant-tables &
用以下命令登录服务器,并重设密码:

 % mysql -u root         #不用密码就可连接到服务器
mysql> use mysql
mysql> set password for 'root'@'localhost' = password('password');
   
修改MySQL服务器帐户密码有三种方式,你可参考本笔记中数据库日常管理一章中的相关内容。在这种环境下,使用mysaladmin修改密码好象不行,还是提示要输入密码。

关闭服务器,再用正常方式启动服务器。

windows平台下:

用管理员帐号登录服务器,关闭MySQL数据库服务器。

使用--skip-grant-tables参数启动服务器:

c:/mysql/bin>mysqld-nt --skip-grant-tables
重新打开一个console窗口,用mysql命令登录服务器设置root的新密码:

c:/mysql/bin>mysql
mysql> use mysql
mysql> set password for 'root'@'localhost' = password('password');
关闭服务器,再用正常方式启动服务器。

5. NULL值
NULL是空值,代表什么也没有。它不能与值进行比较操作和算术操作,也不能和NULL进行比较,因为两个空值比较是没有意义的。我们可用“is NULL” 或 “is not NULL”来判断是不空值。如:

mysql> select * from test where mytest is NULL;
mysql> select * from test where mytest is not NULL;
在MySQL3.23以后的版本有一个新的比较操作符“”,它可对NULL值进行相等比较。如:

mysql> select * from test where mytest UNLL;
mysql> select * from test where not (mytest );
如果查询后排序中的数据中包含NULL,则从MySQL4.0.2开始,有NULL值的数据行总是出现在查询结果的开头,即使设置的desc参数。4.0.2以前版本,如果设置了asc,则出在查询结果的开头,如果设置了desc,则出现在查询结果的结尾。

本文由网页教学网(http://www.webjx.com)整理发布!转载请注明出处,谢谢!

6. 使用SQL变量
MySQL3.23.6以后的版本允许通过查询结果来设置变量,设置好的变量可在以后使用。变量用@name定义,赋值方式用@name:=value。下面是一个在查询语句中进行赋值和使用变量的例子:

mysql> select @name:=id from test where mytest="test";
mysql> select * from test where mytest=@name
7. 改变默认提示符
用mysql登录进数据库后,MySQL数据的默认提示符是“mysql”,我们可设置它根据用户打开的数据库名而变化,如:

mysql>prompt /d>/_
none>use test
test>use mysql
mysql>
prompt为设置命令,/d代表当前数据库,/_代表一个空格。

8. 非优化的全数据表DELETE操作
为了清空数据表,又需知道删除的行数和保持AUTO_INCREMENT序列的值,需用以下的删除语句:

# delete from table_name where 1;
9. MySQL事务处理示例
MYSQL高级特性 -- 事务处理下面以两个银行账户之间的转账为例子进行演示。要使用MySQL中的事务处理,首先需要创建使用事务表类型(如BDB = Berkeley DB或InnoDB)的表。

CREATE TABLE account (
account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
balance DOUBLE
) TYPE = InnoDB;


要在事务表上使用事务处理,必须要首先关闭自动提交:

SET AUTOCOMMIT = 0;

事务处理以BEGIN命令开始:

BEGIN;

现在mysql客户处在于服务器相关的事物上下文中。任何对事务表所做的改变在提交之前不会成为永久性的改变。

UPDATE ACCOUNT SET balance = 50.25 WHERE account_id = 1;
UPDATE ACCOUNT SET balance = 100.25 WHERE account_id = 2;

在做出所有的改变之后,使用COMMIT命令完成事务处理:

COMMIT;

当然,事务处理的真正优点是在执行第二条语句发生错误时体现出来的,若在提交前终止整个事务,可以进行回滚操作:

ROLLBACK;

下面是另一个例子,通过MYSQL直接进行数学运算:

SELECT @first := balance FROM account WHERE account_id = 1;
SELECT @second := balance FROM account WHERE account_id = 2;
UPDATE account SET balance = @first - 25.00 WHERE account_id = 1;
UPDATE account SET balance = @second + 25.00 WHERE account_id = 2;

除了COMMIT命令外,下列命令也会自动结束当前事务:

ALTER TABLE
BEGIN
CREATE INDEX
DROP DATABASE
DROP TABLE
LOCK TABLES
RENAME TABLE
TRUNCATE
UNLOCK TABLES

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan