mysql for linux是著名的关系型数据库MySQL的Linux版本,使许多在Linux平台进行开发工作的用户经常使用的数据库,因为其体积小、速度快、总体拥有成本低等特点而深受一些中小型网站和应用程序的开发者们的喜爱,特别是一些一键式的PHP安装环境集成包,更是将这个数据库作为默认产品。
mysql for linux和其他的大型数据库相比,自然会有一点不足之处,但是相比较于庞大的用户基础和其他特色功能那么这还是一款非常不错的数据库管理软件,特别是一些个人用户和中小型企业来说,这款数据库已经能够完成近乎所有的开发需求。而且因为mysql for linux是一款完全开放源码的软件,所以大大降低了用户的使用成本,对于提高收益有着不错的提升,如果用户是一个个体用户或者中小型企业,那么这款数据库将是你开发个人应用或者网站的首选数据库。
mysql for linux安装详解
1.首先添加mysql用户组
shell> groupadd mysql
2.添加mysql用户,并指定到mysql用户组
shell> useradd -g mysql mysql
3.解压缩mysql-version.tar.gz
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
4.安装mysql
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=armscii8,ascii,big5,cp1250,cp1251,cp1256,cp1257,cp850,cp852,cp866,cp932,dec8,eucjpms,euckr,gb2312,gbk,geostd8,greek,hebrew,hp8,keybcs2,koi8r,koi8u,latin1,latin2,latin5,latin7,macce,macroman,sjis,swe7,tis620,ucs2,ujis,utf8 --with-plugins=innodb_plugin
shell> make
shell> make install
5.复制配置文件
shell> cp support-files/my-medium.cnf /etc/my.cnf
6.执行mysql系统数据库初始化脚本
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
7.设定mysql安装目录权限,设置owner为mysql
shell> chown -R mysql var
shell> chgrp -R mysql .
8.启动mysql应用
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
9.设置root密码(数据库的DBA)
shell> bin/mysqladmin -u root password ‘123456’
10.登录mysql
shell> bin/mysql -u root -p
Enter password:
登录成功会看到:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 229
Server version: 5.1.40-log MySQL Community Server (GPL)
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
mysql>
这时mysql已经装好了,可以查看数据库了,但在正式使用数据库开发与部署的时候还需要做一些工作。
配置方法
1.设定配置文件my.cnf
按照需求copy my-***.cnf到/etc/my.cnf
2.修改默认字符集utf8
(1).[client]下加入default-character-set=utf8
(2).[mysqld]下加入default-character-set=utf8
#不改动存储引擎的话,3、4步可以略过
3.启动InnoDB引擎的方法如下:
1)关闭mysql的服务
2)修改my.ini
将default-storage-engine=INNODB前的注释(#)去掉
将skip-innodb这行注释(加上#)
4.配置innodb参数
1).找到# Uncomment the following if you are using InnoDB tables
去掉innodb_*下的所有#
2).如果安装mysql的目录不是默认的,则需要修改
# mysql 默认安装目录为 /usr/local/mysql/
# mysql 默认表空间目录安装目录为 /usr/local/mysql/var/
innodb_data_home_dir=/usr/local/database/mysql/var/
innodb_log_group_home_dir=/usr/local/database/mysql/var/
3).保存后重启mysql服务。
5.设置系统服务
让linux启动的时候就启动mysql服务
shell> cd /usr/local/mysql/
shell> cp support-files/mysql.server /etc/init.d/mysql
shell> chmod 777 /etc/init.d/mysql
shell> chkconfig --add mysql
shell> chkconfig --level 35 mysql on
6.重启MySQL服务
shell> service mysql restart
备注:
Add a login user and group for ‘mysqld’ to run as:为‘mysqld’增添一个登陆用户和组
shell> groupadd mysql
shell> useradd -g mysql mysql
Configure the release and compile everything:配置和编译
shell> ./configure --prefix=/usr/local/mysql
--prefix后面指示了默认安装路径
shell> make
如果还想知道更详细的configure命令,请查阅manual for configure
If you want to set up an option file, use one of those present in
the ‘support-files’ directory as a template. For example:如果你想安装选项文件,使用当前存在的‘support-files’ 文件夹下的作为模板,例如:
shell> cp support-files/my-medium.cnf /etc/my.cnf
If you haven`t installed MySQL before, you must create the MySQL
grant tables:如果你以前没有安装过MySQL,你必须创建一个MySQL准许的表
shell> bin/mysql_install_db --user=mysql
Change the ownership of program binaries to ‘root’ and ownership
of the data directory to the user that you will run ‘mysqld’ as.
Assuming that you are located in the installation directory
(‘/usr/local/mysql’), the commands look like this:将程序的所有权限给‘root’ ,并且把数据目录的所有权给可以运行‘mysqld’的用户。假设MySQL的安装目录是(‘/usr/local/mysql’),命令如下所示:
shell> chown -R mysql var
shell> chgrp -R mysql .
The first command changes the owner attribute of the files to the ‘root’ user. 第一行命令把文件拥有权给‘root’。The second changes the owner attribute of the data directory to the ‘mysql’ user. 第二行把数据目录拥护权给‘mysql’用户。The third changes the group attribute to the ‘mysql’ group.第三行把组的权限给‘mysql’组。
After everything has been installed, you should initialize and test your distribution using this command:万事具备后,你就可以按照下面的命令测试并运行你的MySQL了:
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
软件特色
1.使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3.为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多线程,充分利用 CPU 资源。
5.优化的 SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
12.MySQL 是开源的,所以你不需要支付额外的费用。
13.MySQL 使用标准的 SQL数据语言形式。
14.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言。
15.MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
16.在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性
17.复制全局事务标识,可支持自我修复式集群
18.复制无崩溃从机,可提高可用性
19.复制多线程从机,可提高性能
20.3倍更快的性能
21.新的优化器
22.原生JSON支持
23.多源复制
存储引擎介绍
MyISAMMySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务
InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎
BDB源 自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失
Merge将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时很有用
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive 拥有高效的插入速度,但其对查询的支持相对较差
Federated将不同的 MySQL 服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个 .csv 文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV 存储引擎不支持索引。
BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录 binlog 做复制的中继
EXAMPLE 存储引擎是一个不做任何事情的存根引擎。它的目的是作为 MySQL 源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE 存储引擎不支持编索引。
另外,MySQL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。
24.GIS的空间扩展(5.7[5] 新增)