bitsCN.com
说明:这里是在win7下安装的,新版本的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 mysql --defaults-file=d:/dev/mysql/my.ini
(如果此时“出现Install/Remove of the Service Denied!”的错误,说明cmd不是以管理员身份运行
或着,
开始菜单,搜索cmd,单击右键“以管理员身份运行”,输入命令:
Mysql代码
mysqld --install mysql
在“服务”中就会出现mysql这一项。 )
5、启动服务(开始菜单,搜索cmd,单击右键“以管理员身份运行”):
Mysql代码
net start mysql
(如果此时启动有问题,如1067错误,一般是你的my.ini文件有问题,你检查一下看看,如果确认没有问题,或者你更改过,那执行以下步骤:
%mysqlhome%/bin>mysqld-nt --remove
Service successfully removed.
然后重新执行步骤4
)
停止服务:
Mysql代码
net stop mysql
6、服务启动后:
登录MySQL服务器:
命令格式:
Mysql代码
mysql -h hostname -u username -p
(这里-h不要也可以,有可能出现can't connect to MySQL server on 'localhost'错误,这个需要修改windows的hosts文件,加上127.0.0.1 localhost)
或
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> update mysql.user set password="root" where User="root";
mysql> flush privileges;
修改该修改密码的语句:update mysql.user set password="root" where User="root";
为: update mysql.user set password=password("root") where User="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> bitsCN.com

MySQL通过异步、半同步和组复制三种模式处理数据复制。1)异步复制性能高但可能丢失数据。2)半同步复制提高数据安全性但增加延迟。3)组复制支持多主复制和故障转移,适用于高可用性需求。

EXPLAIN语句可用于分析和提升SQL查询性能。1.执行EXPLAIN语句查看查询计划。2.分析输出结果,关注访问类型、索引使用情况和JOIN顺序。3.根据分析结果,创建或调整索引,优化JOIN操作,避免全表扫描,以提升查询效率。

使用mysqldump进行逻辑备份和MySQLEnterpriseBackup进行热备份是备份MySQL数据库的有效方法。1.使用mysqldump备份数据库:mysqldump-uroot-pmydatabase>mydatabase_backup.sql。2.使用MySQLEnterpriseBackup进行热备份:mysqlbackup--user=root--password=password--backup-dir=/path/to/backupbackup。恢复时,使用相应的命

MySQL慢查询的主要原因包括索引缺失或不当使用、查询复杂度、数据量过大和硬件资源不足。优化建议包括:1.创建合适的索引;2.优化查询语句;3.使用分表分区技术;4.适当升级硬件。

MySQL视图是基于SQL查询结果的虚拟表,不存储数据。1)视图简化复杂查询,2)增强数据安全性,3)维护数据一致性。视图是数据库中的存储查询,可像表一样使用,但数据动态生成。

mysqldiffersfromothersqldialectsinsyntaxforlimit,自动启动,弦乐范围,子征服和表面上分析。1)MySqluessLipslimit,whilesqlserverusestopopandoraclesrontersrontsrontsrontsronnum.2)

MySQL分区能提升性能和简化维护。1)通过按特定标准(如日期范围)将大表分成小块,2)物理上将数据分成独立文件,3)查询时MySQL可专注于相关分区,4)查询优化器可跳过不相关分区,5)选择合适的分区策略并定期维护是关键。

在MySQL中,如何授予和撤销权限?1.使用GRANT语句授予权限,如GRANTALLPRIVILEGESONdatabase_name.TO'username'@'host';2.使用REVOKE语句撤销权限,如REVOKEALLPRIVILEGESONdatabase_name.FROM'username'@'host',确保及时沟通权限变更。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。