一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
开始——所有程序——MySQL Server5.0——MySQL Command Line Client,系统会提示你输入密码,此时输入你
安装MySQL时设定的密码即可进入MySQL环境。MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123
。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结
束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by '密码'
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除
的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by 'abc';
但例1增加的用户是十分危险的,如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登
录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修
改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码
,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by 'abc';
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by '';
MYSQL中有关数据库方面的操作。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你
可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。
二、显示命令
1、mysql中的时间显示
select current_time(); --只显示当前时间
select currnet_date(); --只显示当前日期
select current_timestamp(); --显示当前的时间和日期
2、显示数据库列表:
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要,它里面有MYSQL的系统d信息,我们改密码和新增用户
,实际上就是用这个库进行操作。
3、显示库中的数据表:
use mysql;
show tables;
4、显示数据表的结构:
describe 表名;
5、建库:
create database 库名;
6、建表:
use 库名;
create table 表名 (字段设定列表);
7、删库和删表:
drop database 库名;
drop table 表名;
8、将表中记录清空:
delete from 表名;
9、显示表中的记录:
select * from 表名;
10、修改数据库的编码方式:
alter database 库名 character set utf8;
11、mysql脚本中的注释:
单行注释:--comments
多行注释:/*comments*/
三、创建表
create table tb_test
(
id int primary key auto_increment, --创建int类型的主键,且自增长
name varchar(255) not null, --创建字符类型的列,最大长度为255字节
salary float(11,2), --创建小数类型的列,小数点后两位
birthday date, --创建日期类型的字段,只保存日期
sleep time, --创建时间类型的字段 ,只保存时间
ts timestamp, --创建时间戳类型的列,保存日期和时间
description text, --创建大文本类型数据的列,保存大文本,长度不受限制
picture blob --创建二进制类型的列,保存二进制数据
);
创建临时表 --临时表是指创建后只在当前数据库内有效,断开与数据库的连接后表就自动删除
create temporary table tb_temp
(
id integer,
name varchar(100),
primary key(id)
);
四、修改表(删除列、增加列、修改列、修改表名)
alter table tableName drop name; --删除tableName表中的name列
alter table tableName change name newName dataType; --修改tableName表中的列
alter tableName add name varchar(200) not null default 'helloword'; --向tableName表中添加name列
alter table tableName rename to newTableName ; --修改表名
五、DML语句(select 、insert、update、delete)
select column1,column2…… from tableName; --查询表tableName 中的column1、……数据
select * from tableName; --查询表tableName中的所有字段信息
insert into tableName (column1,column2) values(value1,value2); --向表tableName中插入column1、
column2字段数据
update tableName set column1=value1,column2=value2 where conditions; --更新tableName表中符合
conditions条件的记录中的column1字段值为value1,column2字段值为value2
delete from tableName where conditions; --删除tableName表中符合条件conditions的记录
delete from tableName; --删除tableName表中的所有记录
六、创建、删除、授权用户
create user username1; --创建用户usernname1
grant all privileges on DBName.* to username1@'% ' identified by 'password123' with grant option;
--授权用户username1仅能访问数据库DBName下的所有数据表,密码为password123
drop user username1; --删除用户username1
七、批量执行sql语句
(1)可以将sql语句写在一个sql格式的脚本文件中,使用批量的方式执行,脚本中的sql语句通过";"分隔,"--"
后是注释;
使用命令source filename.sql 或反斜杠"\. filename.sql" 在控制台批量执行sql语句
(2) 在DOS的\\mysql\\bin目录下执行
mysql -h myhost -u root -p database < sql.txt (sql.txt中包含sql语句)
八、修改mysql用户密码(下面三种方式都通过验证)
①在cmd中执行如下命令即可
mysqladmin -uroot -p password '你的新密码'
eg. mysqladmin -u root -p password root --将用户root的密码改为root,最后要求输入原密码。
②在mysql命令行中执行如下语句
mysql> SET PASSWORD FOR root@"localhost" = PASSWORD('mysql');
③直接在数据库中修改记录
mysql> use mysql
mysql> update user set password = password("new_password") where user = "user_name";
mysql> flush privileges;
九、mysql出现乱码问题解决方案:
(1)修改 my.ini(MySQL Server Instance Configuration 文件)
# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=gbk
# SERVER SECTION
[mysqld]
default-character-set=gbk
(2)修改data目录中相应数据库目录下的db.opt配置文件
default-character-set=gbk
default-collation=gbk_chinese_ci
(3)数据库连接串中指定字符集
URL=jdbc:mysql://yourIP/college?
user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk 注:在mysql4.1.0版 要加
useUnicode=true&characterEncoding=gbk 如果是5.0版以上的,加不加都是没有关系的!(4)在创建数据库时
指定字符集
create database yourDB CHARACTER SET gbk;
(5)在dos命令上要设置
set names gbk
在创建数据库是请使用如下语句:
create database dbName character gbk;
十、mysql自增字段设置
alter table album change ALBUM_ID ALBUM_ID bigint not null auto_increment;
alter table album auto_increment=1;
创建:
mysql>create table cc(id int auto_increment,name varchar(20),primary key(id));
修改:
mysql> alter table cc change id id int primary key auto_increment;
注:只有int类型且为primary key 才可以使用auto_increment.
如果用hibernate作为持久层,那么主键ID处用identity类型.
十一、将文本数据转到数据库中
1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.(注:中文可能由于编码问题显示不出来或乱码)
2、数据传入命令 load data local infile "文件名" into table 表名;
注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打开表所在的库。
十二、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)
mysqldump --opt school>school.扩展名
注释:将数据库school备份到school.bbb文件,school是一个文本文件,文件名任取,打开看看你会有新发现。
十三、mysql的驱动名称及URL
DRIVER: com.mysql.jdbc.Driver
URL: jdbc:mysql://localhost:3306/DBNAME?useUnicode=true&characterEncoding=UTF-8
USERNAME: root
PASSWORD: root
十四、mysql常用图形客户端
mysqlfront, mysqlyog, mysqlbrowser, ems mysql manager