分类:
2011-07-03 17:30:04
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购. 目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的官方网站引述MySQL是“世界上最受欢迎的开放源代码数据库”。这不是狂妄之语,数字可以证明它:目前,有超过1000万份的MySQL被安装用于支付高负荷的网站和其他关键商业应用,包括像爱立信、朗讯、亚马逊、Google、纽约证券交易所、迪斯尼、Yahoo、美国宇航局等这样的产业领袖。
Mysql应用
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
Mysql存储引擎
MyISAM Mysql的默认引擎(Linux安装包),最为常用。拥有较高的插入,查询速度,但不支持事务。适用于一下情况:
1、选择密集的表
2、插入密集的表
InnoDB 事务型数据库的首选引擎,支持事务,支持行级锁定(windows安装包的默认引擎) 。适用于一下情况:
1、更新密集的表
2、自动灾难恢复
Memory 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
Mysql管理工具
可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator
phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。
Navicat是一个桌面版MySQL数据库管理和开发工具.和微软SQLServer的管理器很像,易学易用.Navicat使用图形化的用户界面,可以让用户使用和管理更为轻松.支持中文,有免费版本提供.
Mysql命令
mysql -h hostname -u username –p
h:当连接MySQL服务器不在同台主机时,填写主机名或IP地址
u:登录MySQL的用户名
p:登录MySQL的密码
注意:密码如果写在命令行的时候一定不能有空格。默认是以root登陆,密码为安装时设定的密码,学校机房的密码是123
选定默认数据库:use dbname;
显示所有数据库:show databases;
显示默认数据库中所有表:show tables;
显示命令清单:\h
退出mysql程序:\q同exit
查看MySQL服务器状态信息:\s
批处理sql语句:source sql文件路径 (如:source D:/sql.sql)
查看当前库:SELECT DATABASE();
查看当前用户 :SELECT USER();
MySQL常用命令
create database name; 创建数据库
use databasename; 选择数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 表的详细描述
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_date;
2、修改mysql中root的密码:
shell>mysql -u root -p
mysql> update user set password=password(”xueok654123″) where user=’root’;
mysql> flush privileges //刷新数据库
mysql>use dbname; 打开数据库:
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>describe user; 显示表mysql数据库中user表的列信息);
3、grant
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql> grant all privileges on *.* to user@localhost identified by ’something’ with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
删除授权:
mysql> revoke all privileges on *.* from root@”%”;
mysql> delete from user where user=”root” and host=”%”;
mysql> flush privileges;
创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’
重命名表:
mysql > alter table t1 rename t2;
4、mysqldump
备份数据库
shell> mysqldump -h host -u root -p dbname >dbname_backup.sql
恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
如果只想卸出建表指令,则命令如下:
shell> mysqladmin -u root -p -d databasename > a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump -T./ phptest driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
phpMyAdmin配置
1、安装和配置Apache和PHP
2、将phpMyAdmin解压到Apache配置文件指定的文档根目录(也就是存放.php文件程序的位置)。
3、修改php.ini。查找extension_dir,可以看到两个,选择On windows:下面的那个并去掉前面的分号,并修改为extension_dir = “php路径/ext”,目的是找到和php.ini同目录下的ext文件夹中的扩展库。
4、在php.ini中查找extension=php_,去掉 extension=php_curl.dll、
extension=php_gd2.dll、extension=php_mbstring.dll、
extension=php_mysql.dll、extension=php_mysqli.dll、extension=php_pdo_mysql.dll、extension=php_xmlrpc.dll
前面的分号。
在浏览器中运行phpMyAdmin中的index.php即可,输入MySql的用户名和密码记得登陆
mysql的安装 非标准安装 手动添加路径
前提 mysql-tar.gz压缩包
tar zxvf mysql ..tar.gz -C /usr/local 解压并注意放置的路径
mysql服务器得放置/usr/local/mysql 才能如默认的编译方式进行安装或者进行连接
ln -sv mysql-...linux...../ mysql
ll 查看结果
cd /user/local/mysql
...ls...查看结果是否相同
groupadd mysql 添加组
useradd -g mysql -s /sbin/nologin -M mysql ??? 添加用户无需shell和家目录
id mysql 查看结果
注意在mysql目录下 pwd
chown mysql:mysql . -R 递归修改当前目录的属主和属组
ll 查看。。
注意时刻利用tab建防止出错!!!
scripts/mysql_install_db --user=mysql 脚本以用户mysql身份进行初始化
chown -R root . 权限返回
chown -R mysql data 数据保留存放位置
注意路径的修改
vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin 在export前添加
启动mysql 。。。bin/mysqld_safe --user=mysql &后台运行
netstat -tnlp 查看mysql的3306 端口是否开启
. /etc/profile ????重新读取配置文件
连接。。mysql \q 推出
注意mysql库文件的位置存放
vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib 将mysql文件的路径放入其中
ldconfig -v 重新加载内容 ???
还有 开发文件 man文件及 头文件inlcude 。。。ls include/
ln -sv /usr/local/mysql/include/ /usr/include/mysql ???
启动文件
cp support-files/mysql.server /etc/init.d/mysqld<启动进程》
可以查看是否为执行文件
ll /etc/init.d/mysqld
chkconfig --add mysql 添加到开机自动启动队列
chkconfig mysqld on 开机自动启动
cp support-files/my-large.cnf /etc/my.cnf 拷贝配置文件
service mysqld restart
netstat -tnlp 查看mysql的3306 端口是否开启
标准事例
1.安装mysql-5.0.37
#tar zxvf mysql-5.0.37-linux-i686-glibc23.tar.gz
#mv mysql-5.0.37-linux-i686-glibc23 /usr/local/mysql
#groupadd mysql
#useradd -d /usr/local/mysql/data -s /sbin/nologin -g mysql mysql
#cd /usr/local/mysql
#chown -R root .
#chown -R mysql data
#chgrp -R mysql .
#./scripts/mysql_install_db --user=mysql
#./bin/mysqld_safe --user=mysql &
#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod 700 /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
测试
#/usr/local/mysql/bin/mysqladmin ping
#/usr/local/mysql/bin/mysqladmin version
#/usr/local/mysql/bin/mysql