mysql windows安装包说明:
1、mysql-5.5.20-win32.msi:windows 安装包,图形化的下一步下一步的安装。
2、mysql-5.5.20.zip,这个是windows源文件,需要编译,对应的linux源文件是mysql-5.5.20.tar.gz
3、mysql-5.5.20-win32.zip,这个文件解包后即可使用,是编译好的windows32位mysql。
1、下载mysql-5.5.20-win32.zip,解压到d:/dev,d盘的dev文件夹下就会出现mysql-5.5.20-win32目录,将其重命名为mysql。
2、配置mysql的环境变量
新增系统变量mysql_home: d:/dev/mysql
在path变量的最后面添加: ;%mysql_home%/bin
保存即可。
3、打开文件my-default.ini另存为my.ini,删除my.ini中的所有配置,在my.ini文件中加入如下简单配置:(my.ini是保存在与my-default.ini同一个目录下的)(#表示注释)
mysql代码 # the following options will be passed to all mysql clients [client] #password = your_password port = 3306 [mysql] #设置mysql客户端的字符集 default-character-set = utf8 # the mysql server [mysqld] port = 3306 #设置mysql的安装目录 basedir = d:/dev/mysql #设置mysql数据库的数据存放目录,必须是data或者/xxx-data datadir = d:/dev/mysql/data #设置服务器段的字符集 character_set_server = utf8
4、注册服务
开始菜单,搜索cmd,单击右键 “以管理员身份运行” ,输入命令:
mysql代码 mysqld --install mysql5 --defaults-file=d:/dev/mysql/my.ini
(如果此时“出现install/remove of the service denied!”的错误,说明cmd不是以管理员身份运行)
或着,
开始菜单,搜索cmd,单击右键“以管理员身份运行”,输入命令:
mysql代码 mysqld --install mysql5
删除服务(开始菜单,搜索cmd,单击右键“以管理员身份运行”):
mysql代码 sc delete mysql5
在“服务”中就会出现mysql这一项。
5、启动服务(开始菜单,搜索cmd,单击右键 “以管理员身份运行” ):
mysql代码 net start mysql5
停止服务:
mysql代码 net stop mysql5
6、服务启动后:
登录mysql服务器:
命令格式:
mysql代码 mysql -h hostname -u username -p
或
mysql代码 mysql -hhostname -uusername -p
命令说明:mysql命令将调用mysql监视程序,这是一个可以将我们连接到mysql服务器端的客户端命令行工具。
选项说明:
-h选项:用于指定所希望连接的主机,即运行mysql服务器的机器。如果在运行mysql服务器的机器上运行该命令,则可以忽略该选项和hostname参数;如果不是,必须用运行mysql服务器的主机名称来代替主机名称参数。
-u命令:用于指定连接数据库时使用的用户名称。
-p命令:用于指定用户输入的密码
此时我本机安装了mysql,可忽略该选项和hostname参数:
mysql代码 mysql -uroot -p
注:
mysql的管理员用户名为root,密码默认为空
修改root密码
mysql配置好后,启动成功,默认密码是空,但是为了安全,设置密码(mysql有一个默认用户名为root,密码自己设定:假如设为root)。
1)登录mysql root用户:
打开命令行,执行: mysql代码 mysql -uroot -p
2)修改root密码:
这里不要随便修改,原作者这里是错的,改了就改不回来了,,,哭吧你
以后再进入mysql,则为: mysql代码 mysql -uroot -proot
7、常用命令:
mysql代码 create database new_dbname;--新建数据库 show databases;--显示数据库 use databasename;--使用数据库 select database();--查看已选择的数据库 show tables;--显示当前库的所有表 create table tablename(fieldname1 fieldtype1,fieldname2 fieldtype2,..)[engine=engine_name];--创建表 create table tablename select statement;--通过子查询创建表 desc tablename;--查看表结构 show create table tablename;--查看建表语句 alter table tablename add new_fielname new_fieldtype;--新增列 alter table tablename add new_fielname new_fieldtype after 列名1;--在列名1后新增列 alter table tablename modify fieldname new_fieldtype;--修改列 alter table tablename drop fieldname;--删除列 alter table tablename_old rename tablename_new;--表重命名 insert into tablename(fieldname1,fieldname2,fieldnamen) valuse(value1,value2,valuen);--增 delete from tablename [where fieldname=value];--删 update tablename set fieldname1=new_value where filename2=value;--改 select * from tablename [where filename=value];--查 truncate table tablename;--清空表中所有数据,ddl语句 show engines;--查看mysql现在已提供的存储引擎: show variables like '%storage_engine%';--查看mysql当前默认的存储引擎 show create table tablename;--查看某张表用的存储引擎(结果的engine=部分) alter table tablename engine=innodb--修改引擎 create table tablename(fieldname1 fieldtype1,fieldname2 fieldtype2,..) engine=engine_name;--创建表时设置存储引擎
8、例如:
(1)登录mysql服务器后,查看当前时间,登录的用户以及数据库的版本
mysql代码 mysql> select now(),user(),version(); +---------------------+----------------+-----------+ | now() | user() | version() | +---------------------+----------------+-----------+ | 2012-02-26 20:29:51 | root@localhost | 5.5.20 | +---------------------+----------------+-----------+ 1 row in set (0.00 sec)
(2)显示数据库列表
mysql代码 mysql> show databases; +--------------------+ | database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.03 sec)
(3)新增数据库并查看
mysql代码 mysql> create database test_db; query ok, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | test_db | +--------------------+ 5 rows in set (0.00 sec)
(4)选择数据库
mysql代码 mysql> use test_db; database changed
查看已选择的数据库:
mysql代码 mysql> select database(); +------------+ | database() | +------------+ | test_db | +------------+ 1 row in set (0.00 sec)
(5)显示当前数据库的所有数据表
mysql代码 mysql> show tables; empty set (0.00 sec)
(6)新建数据表并查看
mysql代码 mysql> create table person( -> id int, -> name varchar(20), -> sex char(1), -> birth date -> ); query ok, 0 rows affected (0.09 sec)
mysql代码 mysql> show tables; +-------------------+ | tables_in_test_db | +-------------------+ | person | +-------------------+ 1 row in set (0.00 sec)
(7)获取表结构
mysql代码 mysql> desc person; +-------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | yes | | null | | | name | varchar(20) | yes | | null | | | sex | char(1) | yes | | null | | | birth | date | yes | | null | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
或者
mysql代码 mysql> describe person; +-------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | yes | | null | | | name | varchar(20) | yes | | null | | | sex | char(1) | yes | | null | | | birth | date | yes | | null | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
(8)查询表中的数据
mysql代码 mysql> select * from person; empty set (0.00 sec)
(9)插入数据
mysql代码 mysql> insert into person(id,name,sex,birth) -> values(1,'zhangsan','1','1990-01-08'); query ok, 1 row affected (0.04 sec)
查询表中的数据:
mysql代码 mysql> select * from person; +------+----------+------+------------+ | id | name | sex | birth | +------+----------+------+------------+ | 1 | zhangsan | 1 | 1990-01-08 | +------+----------+------+------------+ 1 row in set (0.00 sec)
(10)修改字段的类型
mysql代码 mysql> alter table person modify sex char(8); query ok, 1 row affected (0.17 sec) records: 1 duplicates: 0 warnings: 0
查看字段描述:
mysql代码 mysql> desc person; +-------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | yes | | null | | | name | varchar(20) | yes | | null | | | sex | char(8) | yes | | null | | | birth | date | yes | | null | | +-------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec)
(11)新增一个字段
mysql代码 mysql> alter table person add(address varchar(50)); query ok, 1 row affected (0.27 sec) records: 1 duplicates: 0 warnings: 0
查看字段描述:
mysql代码 mysql> desc person; +---------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +---------+-------------+------+-----+---------+-------+ | id | int(11) | yes | | null | | | name | varchar(20) | yes | | null | | | sex | char(8) | yes | | null | | | birth | date | yes | | null | | | address | varchar(50) | yes | | null | | +---------+-------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
(12)更新字段内容
查看修改前表的内容:
mysql代码 mysql> select * from person; +------+----------+------+------------+---------+ | id | name | sex | birth | address | +------+----------+------+------------+---------+ | 1 | zhangsan | 1 | 1990-01-08 | null | +------+----------+------+------------+---------+ 1 row in set (0.00 sec)
修改:
mysql代码 mysql> update person set name='lisi' where id=1; query ok, 1 row affected (0.04 sec) rows matched: 1 changed: 1 warnings: 0 mysql> select * from person; +------+------+------+------------+---------+ | id | name | sex | birth | address | +------+------+------+------------+---------+ | 1 | lisi | 1 | 1990-01-08 | null | +------+------+------+------------+---------+ 1 row in set (0.00 sec) mysql> update person set sex='man',address='china' where id=1; query ok, 1 row affected (0.04 sec) rows matched: 1 changed: 1 warnings: 0 mysql> select * from person; +------+------+------+------------+---------+ | id | name | sex | birth | address | +------+------+------+------------+---------+ | 1 | lisi | man | 1990-01-08 | china | +------+------+------+------------+---------+ 1 row in set (0.00 sec)
为了方便下面测试删除数据,在向person表中插入2条数据:
mysql代码 mysql> insert into person(id,name,sex,birth,address) -> values(2,'wangwu','man','1990-01-10','china'); query ok, 1 row affected (0.02 sec) mysql> insert into person(id,name,sex,birth,address) -> values(3,'zhangsan','man','1990-01-10','china'); query ok, 1 row affected (0.04 sec) mysql> select * from person; +------+----------+------+------------+---------+ | id | name | sex | birth | address | +------+----------+------+------------+---------+ | 1 | lisi | man | 1990-01-08 | china | | 2 | wangwu | man | 1990-01-10 | china | | 3 | zhangsan | man | 1990-01-10 | china | +------+----------+------+------------+---------+ 3 rows in set (0.00 sec)
(13)删除表中的数据
删除表中指定的数据:
mysql代码 mysql> delete from person where id=2; query ok, 1 row affected (0.02 sec) mysql> select * from person; +------+----------+------+------------+---------+ | id | name | sex | birth | address | +------+----------+------+------------+---------+ | 1 | lisi | man | 1990-01-08 | china | | 3 | zhangsan | man | 1990-01-10 | china | +------+----------+------+------------+---------+ 2 rows in set (0.00 sec)
删除表中全部的数据:
mysql代码 mysql> delete from person; query ok, 2 rows affected (0.04 sec) mysql> select * from person; empty set (0.00 sec)
(14)重命名表
查看重命名前的表名:
mysql代码 mysql> show tables; +-------------------+ | tables_in_test_db | +-------------------+ | person | +-------------------+ 1 row in set (0.00 sec)
重命名:
mysql代码 mysql> alter table person rename person_test; query ok, 0 rows affected (0.04 sec) mysql> show tables; +-------------------+ | tables_in_test_db | +-------------------+ | person_test | +-------------------+ 1 row in set (0.00 sec)
(15)新增主键
mysql代码 mysql> alter table person_test add primary key(id); query ok, 0 rows affected (0.11 sec) records: 0 duplicates: 0 warnings: 0 mysql> desc person_test; +---------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +---------+-------------+------+-----+---------+-------+ | id | int(11) | no | pri | 0 | | | name | varchar(20) | yes | | null | | | sex | char(8) | yes | | null | | | birth | date | yes | | null | | | address | varchar(50) | yes | | null | | +---------+-------------+------+-----+---------+-------+ 5 rows in set (0.00 sec)
删除主键:
mysql代码 mysql> alter table person_test drop primary key; query ok, 0 rows affected (0.18 sec) records: 0 duplicates: 0 warnings: 0 mysql> desc person_test; +---------+-------------+------+-----+---------+-------+ | field | type | null | key | default | extra | +---------+-------------+------+-----+---------+-------+ | id | int(11) | no | | 0 | | | name | varchar(20) | yes | | null | | | sex | char(8) | yes | | null | | | birth | date | yes | | null | | | address | varchar(50) | yes | | null | | +---------+-------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
(16)删除表
mysql代码 mysql> drop table person_test; query ok, 0 rows affected (0.04 sec) mysql> show tables; empty set (0.00 sec)
(17)删除数据库
mysql代码 mysql> show databases; +--------------------+ | database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | test_db | +--------------------+ 5 rows in set (0.00 sec) mysql> drop database test_db; query ok, 0 rows affected (0.11 sec) mysql> show databases; +--------------------+ | database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec)
(18)查看建表语句
mysql代码 mysql> show create table table_name;
补充说明:
update mysql.user set password=root where user=root;修改的不是密码,如果按照这个方式修改了,重新登录时将会报错:
mysql代码 mysql> update mysql.user set password=root where user=root; query ok, 3 rows affected (0.00 sec) rows matched: 3 changed: 3 warnings: 0 mysql> exit bye c:/users/liqiong>mysql -uroot -p enter password: **** error 1045 (28000): access denied for user 'root'@'localhost' (using password: y es)
请按照以下方式重新修改密码,即可登录成功:
mysql代码 c:/users/liqiong>mysql -uroot welcome to the mysql monitor. commands end with ; or /g. your mysql connection id is 4 server version: 5.5.20 mysql community server (gpl) copyright (c) 2000, 2011, oracle and/or its affiliates. all rights reserved. oracle is a registered trademark of oracle corporation and/or its affiliates. other names may be trademarks of their respective owners. type 'help;' or '/h' for help. type '/c' to clear the current input statement. mysql> update mysql.user set password=password(root) where user=root; query ok, 3 rows affected (0.00 sec) rows matched: 3 changed: 3 warnings: 0 mysql> flush privileges; query ok, 0 rows affected (0.00 sec) mysql> exit bye c:/users/liqiong>mysql -uroot -p enter password: **** welcome to the mysql monitor. commands end with ; or /g. your mysql connection id is 5 server version: 5.5.20 mysql community server (gpl) copyright (c) 2000, 2011, oracle and/or its affiliates. all rights reserved. oracle is a registered trademark of oracle corporation and/or its affiliates. other names may be trademarks of their respective owners. type 'help;' or '/h' for help. type '/c' to clear the current input statement. mysql>