当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL入门完全指南及Linux系统下基本的安装教程

MySQL入门完全指南及Linux系统下基本的安装教程

2017年12月12日  | 移动技术网IT编程  | 我要评论

和尚卖艺,这一秒 我哭了,微播江湖默默生活照

我们来了解一下mysql的基本特性:

1.内部构件和可移植性

  • 使用c和c++编写
  • 用众多不同的编译器进行了测试
  • 能够工作在众多不同的平台上。请参见2.1.1 “mysql支持的操作系统”。
  • 使用gnu automake、autoconf和libtool进行移植。
  • 提供了用于c、c++、eiffel、java、perl、php、python、ruby和tcl的api。
  • 采用核心线程的完全多线程 如果有多个cpu,它能方便地使用这些cpu。
  • 提供了事务性和非事务性存储引擎。
  • 使用了极快的“b树”磁盘表(myisam)和索引压缩。
  • 添加另一个存储引擎相对简单。如果打算为内部数据库添加一个sql接口,该特性十分有用。
  • 极快的基于线程的内存分配系统。
  • 通过使用优化的“单扫描多连接”,能实现极快的连接。
  • 存储器中的哈希表用作临时表。
  • sql函数是使用高度优化的类库实现的,运行很快。通常,在完成查询初始化后,不存在存储器分配。
  • 采用purify(商业内存溢出检测器)以及gpl工具valgrind(http://developer.kde.org/~sewardj/)测试了mysql代码。
  • 服务器可作为单独程序运行在客户端/服务器联网环境下。它也可作为库提供,可嵌入(链接)到独立的应用程序中。这类应用程序可单独使用,也能在网络环境下使用。

2.列类型

众多列类型: 带符号/无符号整数,1、2、3、4、8字节长,float,double,char,varchar,text,blob,date,time,datetime,timestamp,year,set,enum,以及opengis空间类型。请参见第11章:列类型。

定长和可变长度记录。

3.语句和函数

在select和查询的where子句中,提供完整的操作符和函数支持。例如:

mysql> select concat(first_name, ' ', last_name)
  -> from citizen
  -> where income/dependents > 10000 and age > 30;

对sql group by和order by子句的全面支持。支持聚合函数(count(), count(distinct ...),avg(),std(),sum(),max(),min()和group_concat())。

支持left outer join和right outer join,采用标准的sql和odbc语法。

按照标准sql的要求,支持表别名和列别名。

delete、insert、replace和update返回更改(影响)的行数。连接到服务器时,可通过设置标志返回匹配的行数。

mysql的show命令可用于检索关于数据库、数据库引擎、表和索引的信息。explain命令可用于确定优化器处理查询的方式。

函数名与表名或列名不冲突。例如,abs是有效的列名。唯一的限制在于,调用函数时,函数名和随后的符号“(”之间不得有空格。请参见9.6 “mysql中保留字的处理”。

可以将不同数据库的表混合在相同的查询中(就像mysql 3.22中那样)。

4.安全

十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。

5.可伸缩性和限制

处理大型数据库: 我们使用了mysql服务器和含5千万条记录的数据库。我们还听说,有些用户将mysql用于含60000个表和约50亿行的数据库。

每个表可支持高达64条索引(在mysql 4.1.2之前为32条)。每条索引可由1~16个列或列元素组成。最大索引宽度为1000字节(在mysql 4.1.2之前为500)。索引可使用具备char、varchar、blob或text列类型的列前缀。

6.连接性

在任何平台上,客户端可使用tcp/ip协议连接到mysql服务器。在windows系统的nt系列中(nt、2000、xp或2003),客户端可使用命名管道进行连接。在unix系统中,客户端可使用unix域套接字文件建立连接。

在mysql 4.1和更高的版本中,如果是以“--shared-memory”选项开始,windows服务器还支持共享内存连接。客户端可使用“--protocol=memory”选项,通过共享内存建立连接。

connector/odbc (myodbc)接口为使用odbc(开放式数据库连接性)连接的客户端程序提供了mysql支持。例如,可以使用ms access连接到你的mysql服务器。客户端可运行在windows或unix平台上。提供了myodbc源。支持所有的odbc 2.5函数,以及众多其他函数。

connector/j接口为使用jdbc连接的java客户端程序提供了mysql支持。客户端可运行在windows或unix平台上。提供了connector/j源码。

7.本地化

服务器可使用多种语言向客户端提供错误消息。请参见5.10.2节,“设置错误消息语言”。

对数种不同字符集的全面支持,包括latin1 (cp1252)、german、big5、ujis等。例如,在表名和列名中允许使用斯堪的纳维亚字符‘å'、‘ä'和‘ö'。从mysql 4.1开始,提供了unicode支持。

所有数据均以所选的字符集保存。正常字符串列的比较不区分大小写。

分类是根据所选的字符集(默认情况下,使用瑞典校对)进行的。启动mysql服务器时,可更改该项设置。要想查看高级分类的示例,请参见czech分类代码。mysql服务器支持众多不同的字符集,这类字符集可在编译时和运行时指定。

8.客户端和工具

mysql服务器提供了对sql语句的内部支持,可用于检查、优化和修复表。通过mysqlcheck客户端,可在命令行上使用这类语句。mysql还包括myisamchk,这是一种很快的命令行实用工具,可用于在myisam表上执行这类操作。请参见第5章:数据库管理。

对于所有mysql程序,均能通过“-help”或“-?”选项调用,以获取联机帮助信息。

mysql在linux上的安装:

1,rpm包形式
(1) 操作系统发行商提供的
(2) mysql官方提供的(版本更新,修复了更多常见bug)www.mysql.com/downloads
关于mysql中rpm包类型的介绍:
 mysql-client         客户端组件
 
 mysql-debuginfo      调试mysql的组件 
 
 mysql-devel          想针对于mysql编译安装php等依赖于mysql的组件包
 
 mysql-embedded       mysql的嵌入式版本
 
 mysql-server         共享库
 
 mysql-shared         共享库
 
 mysql-shared-dompat  为了兼容老版本的共享库
 
 mysql-test           mysql的测试组件(在线处理功能)
安装方法:
首先可以从安装光盘中或者到mysql的网站上下载对应版本的rpm包如下:

mysql-server-community-5.5.28-1.rhel5.i386.rpm 
 
mysql-client-community-5.5.28-1.rhel5.i386.rpm 

接着我们可以使用rpm命令进行安装:
rpm -ivh mysql-server-community-5.5.28-1.rhel5.i386.rpm 
 
rpm -ivh mysql-client-community-5.5.28-1.rhel5.i386.rpm 

补充一点: 
-h 使用符号#显示安装进度
 
-v 报告每一步操作的情况

2,通用二进制包
(1)新建用户以安全方式运行进程:

# groupadd -r mysql 
 
# useradd -g mysql -r -s /sbin/nologin -m -d /mydata/data mysql 
 
# chown -r mysql:mysql /mydata/data 

(2)安装并初始化mysql-5.5.28
首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.28-linux2.6-i686.tar.gz
#

 tar xf mysql-5.5.28-linux2.6-i686.tar.gz -c /usr/local 
 
# cd /usr/local/ 
 
# ln -sv mysql-5.5.28-linux2.6-i686 mysql 
 
# cd mysql 
 
# chown -r mysql:mysql . 
 
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data 
 
# chown -r root . 

(3)为mysql提供主配置文件:

# cd /usr/local/mysql 
 
# cp support-files/my-large.cnf /etc/my.cnf 

(4)修改配置文件:
修改此文件中thread_concurrency的值为你的cpu个数乘以2,比如这里使用如下行: 
 

thread_concurrency = 2 

 
另外还需要添加如下行指定mysql数据文件的存放位置: 
 

datadir = /mydata/data 

(5)为mysql提供sysv服务脚本:

# cd /usr/local/mysql 
 
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 

(6)添加至服务列表:

# chkconfig --add mysqld 
 
# chkconfig mysqld on 

(7)而后就可以启动服务测试使用了。

# service mysqld start

 
3,源码编译
(安装编译方式有点改变,配置过程无太大变动,所以后面不详细介绍各个步骤了)
若想在5.0系列的红帽系统上进行源码编译安装mysql必须借助一个跨平台编译器cmake
所以:
(1)首先安装cmake
安装cmake需要用make

# tar xf cmake-2.8.8.tar.gz 
 
# cd cmake-2.8.8 
 
# ./bootstrap 

     使用此脚本来检测编译环境 
 

# make 
 
# make install 

(2)编译安装mysql-5.5.28
使用cmake编译mysql-5.5.28,选项的方式有所改变简单介绍一下。。。
cmake指定编译选项的方式不同于make,其实现方式如下:
cmake .
 
cmake . -lh 或 ccmake .        查找可以使用的相关选项
指定安装文件的安装路径时常用的选项:
-dcmake_install_prefix=/usr/local/mysql         指定安装路径
 
-dmysql_datadir=/data/mysql                     数据安装路径
 
-dsysconfdir=/etc                               配置文件的安装路径
由于mysql支持很多的存储引擎而默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-dwith_innobase_storage_engine=1          安装innobase存储引擎
 
-dwith_archive_storage_engine=1           安装archive存储引擎
 
-dwith_blackhole_storage_engine=1         安装blackhole存储引擎
 
-dwith_federated_storage_engine=1         安装federated存储引擎
 
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-dwithout_<engine>_storage_engine=1 
比如:
-dwithout_example_storage_engine=1        不启用或不编译example存储引擎
 
-dwithout_federated_storage_engine=1
 
-dwithout_partition_storage_engine=1
如若要编译进其它功能,如ssl等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-dwith_readline=1
 
-dwith_ssl=system           表示使用系统上的自带的ssl库
 
-dwith_zlib=system
 
-dwith_libwrap=0
其它常用的选项:
-dmysql_tcp_port=3306                       设置默认端口的
 
-dmysql_unix_addr=/tmp/mysql.sock           mysql进程间通信的套接字的位置
 
-denabled_local_infile=1                    是否启动本地的local_infile
 
-dextra_charsets=all                        支持哪些额外的字符集
 
-ddefault_charset=utf8                      默认字符集
 
-ddefault_collation=utf8_general_ci         默认的字符集排序规则
 
-dwith_debug=0                              是否启动debug功能
 
-denable_profiling=1                        是否启用性能分析功能
如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean 
 
rm cmakecache.txt 

编译安装

# tar xf mysql-5.5.28.tar.gz 
 
# cd mysql-5.5.28 
 
# groupadd -r mysql 
 
# useradd -g -r mysql mysql 
 
# mkdir -pv /data/mydata 
 
# chown -r mysql:mysql /data/mydata 
 
# cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data/mydata -dsysconfdir=/etc -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_readline=1 -dwith_ssl=system -dwith_zlib=system -dwith_libwrap=0 -dmysql_unix_addr=/tmp/mysql.sock -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci 
 
# make 
 
# make install
 
# cd /usr/local/mysql 

 

# chown -r :mysql

    更改属组 
 

# scripts/mysql_install_db --user=mysql --datadir=/data/mydata/

  指定数据存放位置
 

# cp support-files/my-large.cnf /etc/my.cnf 

    创建配置文件
 
编辑配置文件

#vim /etc/my.cnf 

添加如下行指定mysql数据文件的存放位置: 
 

datadir = /mydata/data 

创建执行脚本和启动服务

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 

复制脚本 
 

# chmod +x /etc/rc.d/init.d/mysqld 

 执行权限 
 

# chkconfig -add mysql 

添加到服务列表中 
 

# service mysqld start 

 启动服务 
 

# bin/mysql  

启动mysql

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网