MySQL,本人自身项目经历中,用的较多的就是Oracle,SQLServer, MySQL

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

mysql-essential-5.6.0 下载地址 


进入正题,开始安装:
运行“setup.exe”,出现如下界面




alien 安装mysql mysql安装器安装_mysql


mysql安装图文教程1


 


mysql安装向导启动,按“Next”继续



alien 安装mysql mysql安装器安装_mysql_02


mysql图文安装教程2

 


选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程:



alien 安装mysql mysql安装器安装_安装_03


mysql图文安装教程3

 


在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。



alien 安装mysql mysql安装器安装_mysql_04


mysql图文安装教程4


填上安装目录,我的是“F:\Server\MySQL\MySQL Server 5.0”,也建议不要放在与操作系统同一分区,这样可以防止系统备份还原的时候,数据被清空。按“OK”继续。



alien 安装mysql mysql安装器安装_alien 安装mysql_05


mysql图文安装教程5


返回刚才的界面,按“Next”继续



alien 安装mysql mysql安装器安装_安装_06


mysql图文安装教程6


确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。


 



alien 安装mysql mysql安装器安装_数据库服务器_07


mysql图文安装教程7


正在安装中,请稍候,直到出现下面的界面


 



alien 安装mysql mysql安装器安装_mysql_08


mysql图文安装教程8


这里是询问你是否要注册一个mysql.com的账号,或是使用已有的账号登陆mysql.com,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。


 



alien 安装mysql mysql安装器安装_安装_09


mysql图文安装教程9


现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将 “Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。


 



alien 安装mysql mysql安装器安装_alien 安装mysql_10


mysql图文安装教程10

 


mysql配置向导启动界面,按“Next”继续



alien 安装mysql mysql安装器安装_安装_11


mysql图文安装教程10


选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。



alien 安装mysql mysql安装器安装_数据库服务器_12


mysql图文安装教程11


选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,大家根据自己的类型选择了,一般选“Server Machine”,不会太少,也不会占满。



alien 安装mysql mysql安装器安装_mysql_13


mysql图文安装教程12


选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择了,我这里选择“Transactional Database Only”,按“Next”继续。


 



alien 安装mysql mysql安装器安装_alien 安装mysql_14


mysql图文安装教程13

 


对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用用默认位置,直接按“Next”继续


 



alien 安装mysql mysql安装器安装_mysql_15


mysql图文安装教程14

 


选择您的网站的一般mysql访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里选“Online Transaction Processing(OLTP)”,自己的服务器,应该够用了,按“Next”继续



alien 安装mysql mysql安装器安装_数据库管理_16


mysql图文安装教程15

 


是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),这样MySQL就不会允许细小的语法错误。如果您还是个新手,我建议您取消标准模式以减少麻烦。但熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续


 



alien 安装mysql mysql安装器安装_数据库管理_17


mysql图文安装教程16

 


西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在Character Set那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一次“SET NAMES GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按 “Next”继续。



alien 安装mysql mysql安装器安装_数据库服务器_18


mysql图文安装教程17


选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。


 



alien 安装mysql mysql安装器安装_alien 安装mysql_19


mysql图文安装教程18

 


“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。


 



alien 安装mysql mysql安装器安装_安装_20


mysql图文安装教程19

 


确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。


 



alien 安装mysql mysql安装器安装_mysql_21


mysql图文安装教程20

 


设置完毕,按“Finish”结束mysql的安装与配置——这里有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。



Mysql 默认安装密码为空

账号:root  密码: 





安装问题汇总:


1.如果是用MySQL+Apache,使用的又是 FreeBSD网路 操作系统的话,安装时候你应按注意到FreeBSD的版本问题,在FreeBSD的3.0以下版本来说,MySQLSource内含的MIT-pthread运行是正常的,但在这版本以上,你必须使用nativethreads,也就是加入一个with-named-thread-libs=-lc_r的选项。


2.如果在COMPILE过程中出了问题,请先检查你的gcc版本是否在2.81版本以上,gmake版本是否在3.75以上。


3.如果不是版本的问题,那可能是你的 内存不足,请使用./configure--with-low-memory来加入。


4.如果要重新做你的configure,那么你可以键入rmconfig.cache和makeclean来清除记录。


5.把MySQL安装在/usr/local目录下,这是 缺省值,您也可以按照你的需要设定你所安装的目录。




报错解决:


1.Starting MySQL.Manager of pid-file quit without updating fi[失败]


关于这个错误原因有很多,最大的可能是没有创建测试数据库,可以用/usr/local/mysql/scripts/mysql_install_db –user=mysql命令进行创建;另外一个原因可能是权限设置问题,需要赋予mysql的data权限,可以用chmod -R 命令。


2.FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from


within the directory the archive extracted into. If you compiled


MySQL yourself you must run ‘make install’ first.


这个错误,是没有指明mysql的date路径导致的,可以很简单的进行解决:


vim /etc/my.cnf


在[mysqld] 后面加上路径:


basedir = /usr/local/mysql


datadir =/opt/data;


3.-bash: mysql: command not found


用mysql命令进行登陆mysql报错,原因是没有 设置 环境变量,需要设置,或者进入到bin目录进行登陆cd /usr/local/mysql/bin


mysql -u root


4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server


用mysql远程工具链接数据库报错,这个错误原因是没有开放远程链接功能,可以在mysql里面输入如下命令进行解决:GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH GRANT OPTION;



MySQL基本指令


[ ]中的内容为可选项


--创建数据库


mysql> create database 数据库名称


--创建表


mysql> create table 表名 (


列的名字(id)类型(int(4))primary key(定义主键) auto_increment(描述 自增),


……,


);


--查看所有数据库


mysql> show databases ;


--使用某个数据库


mysql> use 数据库名称;


--查看所使用数据库下所有的表


mysql> show tables;


--显示表的属性结构


mysql> desc 表名;


--选择表中数据的显示


--* 代表选择所有列 ,


mysql> select * from 表名 where id=?[and name=?] [or name=?];


mysql> select id,name from 表名order by 某一列的名称 desc(降序,asc为升序)


--删除表中的数据


mysql> delete from table where id=?[or name=? (and name=?)];


--删除表


mysql> drop table;


--删除数据库


mysql> drop database;




MySQL基础


连接MYSQL


格式:mysql -h主机地址 -u用户名 -p用户密码


1.例1:连接到本机上的MYSQL。


首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL, 超级用户root是没有密码的,故直接回车即可进入到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 (回车)


注意:想要成功连接到远程 主机,需要在远程主机打开MySQL 远程访问权限


方法如下:


在远程主机中以 管理员身份进入


输入如下命令


mysql>GRANT ALL PRIVILEGES ON *.* TO 'agui'@%'IDENTIFIEDBY '123' WITH GRANT OPTION;


FLUSH PRIVILEGES;


//赋予任何主机访问数据的权限


mysql>FLUSH PRIVILEGES


// 修改生效


agui为我们使用的用户名


密码为123


即:在远程主机上作好设置,我们即可通过mysql -h110.110.110.110 -uagui -p123连接进远程主机


修改密码


格式: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上的任何一台电脑上登录你的my sql 数据库并对你的数据可以为所欲为了,解决办法见例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中有关数据库方面的操作。注意:必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。


操作技巧


1.如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。


2.你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我用的是my sql-3.23.27-beta-win。


显示命令


1.显示数据库列表。


show databases;


刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的 系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。


2.显示库中的数据表:


use mysql; //打开库,学过FOXBASE的一定不会陌生吧


show tables;


3.显示数据表的结构:


describe 表名;


4.建库:


create database 库名;


5.建表:


use 库名;


create table 表名 (字段设定列表);


6.删库和删表:


drop database 库名;


drop table 表名;


7、将表中记录清空:


delete from 表名;


8.显示表中的记录:


select * from 表名;


9、显示最后一个执行的语句所产生的错误、警告和通知:


show warnings;


10.只显示最后一个执行语句所产生的错误:


show errors;


实例


drop database if exists school; //如果存在SCHOOL则删除


create database school; //建立库SCHOOL


use school; //打开库SCHOOL


create table teacher //建立表TEACHER


(


id int(3) auto_increment not null primary key,


name char(10) not null,


address varchar(50) default ‘ 深圳',


year date


); //建表结束


//以下为插入字段


insert into teacher values('','glchengang',’XX公司‘,'1976-10-10');


insert into teacher values('','jack',’XX公司‘,'1975-12-23');


注:在建表中:


1.将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key。


2.将NAME设为长度为10的字符字段。


3.将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。


4.将YEAR设为 日期字段。


如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:


mysql -uroot -p密码 < c:\school.sql


如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。


文本转到数据库


1.文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.


例:


3.rose 深圳二中 1976-10-10


4.mike 深圳一中 1975-12-23


2.数据传入命令 load data local infile “文件名” into table 表名;


注意:你最好将文件复制到\mysql\bin目录下,并且要先用use命令打开表所在的数据库。


备份数据库


(命令在DOS的\mysql\bin目录下执行)


mysqldump --opt school>school.bbb


注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。


自动备份mysql数据库的方法


1、先是建立批处理文件,将以下代码另存为.bat文件,文件名最好为英文。注意下面的路径,以笔者自己的数据库为例,数据库安装在D盘下mysql\mysql下,备份位置在F:\beifen,后面的代码是日期。


@echo off


color 0D


MODE con: COLS=71 LINES=25


title mysql数据库自动备份脚本(任务计划)--脚本作者:http://www。***。com


set sou_dir="D:\mysql\Mysql\data"


set obj_dir=F:\beifen\%date:~0,10%


net stop mysql


md %obj_dir%


xcopy /e /y %sou_dir% %obj_dir%


net start mysql


@echo off&setlocal enabledelayedexpansion


call:D,30


echo. 30天前日期为:%D%


echo. 删除30天以前备份......


if exist F:\beifen\%D% rd /s /q F:\beifen\%D%


echo 自动备份完成,程序将自动退出......


还原/导入


还原/导入数据库,导入过程,进入mysql数据库控制台,如mysql -u root -p


mysql>use 数据库


然后使用source命令,后面参数为脚本文件(如这里用到的.sql)


mysql>source d:\dbname.sql


如果提示找不到文件,输完sourw后,可以用鼠标把文件直接拖进命令行窗口


启动跟踪文件


mysqld --debug


关闭服务器


mysqladmin -u root shutdown


启动MySQL服务


mysqld --console





管理工具

可以使用命令行工具管理 MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator,MySQL Query Browser和MySQL Workbench。

phpMyAdmin是由php写成的MySQL资料库 系统管理程程序,让管理者可用Web界面管理MySQL资料库。

phpMyBackupPro也是由PHP写成的,可以透过Web界面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。

另外,还有其他的GUI 管理工具,例如mysql-front 以及 ems mysql manager, navicat等等。