Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43840
  • 博文数量: 14
  • 博客积分: 397
  • 博客等级: 一等列兵
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-09 18:44
文章分类
文章存档

2013年(2)

2011年(12)

分类:

2011-07-03 17:30:04

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008116号被Sun公司收购。而2009,SUN又被Oracle收购. 目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

 

MySQL的官方网站引述MySQL是“世界上最受欢迎的开放源代码数据库”。这不是狂妄之语,数字可以证明它:目前,有超过1000万份的MySQL被安装用于支付高负荷的网站和其他关键商业应用,包括像爱立信、朗讯、亚马逊、Google、纽约证券交易所、迪斯尼、Yahoo、美国宇航局等这样的产业领袖。

 

Mysql应用

与其他的大型数据库例如OracleDB2SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。   

目前Internet上流行的网站构架方式是LAMPLinux+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程序:\qexit

查看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、修改mysqlroot的密码:

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表的列信息);

3grant

创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令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;

4mysqldump

备份数据库

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、安装和配置ApachePHP

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.dllextension=php_mbstring.dll

extension=php_mysql.dllextension=php_mysqli.dllextension=php_pdo_mysql.dllextension=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   查看mysql3306 端口是否开启

   . /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 查看mysql3306 端口是否开启

 

 

标准事例

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

阅读(434) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~