多语言展示
当前在线:1981今日阅读:99今日分享:20

MySQL服务器的编译安装与配置

MySQL 是一个关系型数据库管理系统,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。已经成为时下最流行的关系型数据库管理系统。下面就看看它是怎么编译安装和使用的吧!
工具/原料
1

Linux服务器或虚拟机(实验用CentOS 6.5虚拟机环境)

2

最新版 Mysql5.6 的源码包(下载链接:http://pan.baidu.com/s/10Isgu 密码:jkg9)

3

由于较新版的Mysql使用 cmake 进行配置的,需要先安装 cmake :' yum install cmake '

4

由于编译安装很费时,可以选择直接使用我编译好的二进制软件包,但是并不保证所有平台通用(下载链接:http://pan.baidu.com/s/1jG892oY 密码:yq4w)

方法/步骤
1

首先我们先解压Mysql的安装包,建议解压到 /usr/local/src 目录中方便管理#  tar  xf  mysql-5.6.16.tar.gz #  cd mysql-5.6.16然后我们执行以下指令对源码包进行预处理:cmake  \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    \-DMYSQL_DATADIR=/usr/local/mysql/data    \-DSYSCONFDIR=/etc   \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci配置中指定了安装路径、数据库路径、配置文件路径等参数。等配置结束后可以使用 echo $? 查看返回值确定是否配置成功。我在编译时便遇到了一个名为 ncurses-devel 的依赖包没有安装,具体信息请阅读错误提示。等我用yum源安装好后发现无法继续cmake了,只好删除后重新解压源码包才配置成功的。好了 一切没问题了就开始 make && make install 吧!# make  &&  make  install

2

由于源码包比较大,解压后我统计了下,竟然291M,天啊这可得慢慢等待了。我花费了一个多小时才编译完成的,也是够慢了。编译安装完成后会生成 /usr/local/mysql 这样一个文件夹,如果选用了直接解压二进制包,就把它解压到 /usr/local 中。我们进入这个文件夹中看看bin          这个目录存放着mysql的服务器和客户机程序,我们应该添加到环境变量data        这个文件夹就是数据库目录include        这里存放着mysql开发用的函数头文件,可以被其他源码包编译时依赖lib        Mysql运行需要的运行库scripts         Mysql初始化数据库的脚本,更改数据库目录后也需要进行初始化man      Mysql是使用手册,需要让man命令识别这个路径才能使用support-files       其中存放着Mysql的配置文件模板和服务控制脚本等文件Mysql的配置文件为 /etc/my.cnf ,数据库目录为 /usr/local/mysql/data

3

接下来就开始部署这些文件,然后让Mysql启动起来吧!首先建立mysql用户和组,并不创建家目录,不允许登陆系统# groupadd  mysql# useradd  -M  -s  /sbin/nologin  -g  mysql  mysql设置mysql安装目录的属主和属组# chown  -R  mysql:mysql  /usr/local/mysql/给数据库目录可读可写的权限# chmod  777  -R  /usr/local/mysql/data/复制配置文件和服务控制脚本到相应位置# cp /usr/local/mysql/support-files/my-default.cnf   /etc/my.cnf# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld编辑配置文件 /etc/mysql.cnf,添加:basedir = /usr/local/mysqldatadir = /usr/local/mysql/data指定安装目录和数据库目录就可以了,其他参数先不用管。如图一所示接下来就可以初始化数据库了# cd  /usr/local/mysql# scripts/mysql_install_db --user=mysql结果如图二所示就代表成功了,可以用 echo $? 查看返回值

4

现在就可以启动Mysql数据库服务了 它的启动命令是 mysqld# service  mysqld  start然后出现大写的 ' SUCCESS '就代表启动成功了,然后用netstat看看它监听的端口吧!# netstat  -anpt  |  grep  mysqld我们发现它默认监听在 TCP 的' 3306 '端口我们可以用它自带的 mysql 命令连接进去看看用 -u 指定用户名 -h 指定主机 -p 来输入密码# /usr/local/mysql/bin/mysql  -u root  -h  localhost  -p这个root用户可不是系统登陆的root用户,而是mysql服务器中的一个默认用户。由于我们还没有给root用户设置密码,直接回车就可以进如了,如果出现一个' mysql > '就代表成功了。输入' exit '命令退出。总使用绝对路径来执行mysql命令也不是办法,我们把它的环境变量配置下吧# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh# source  /etc/profile.d/mysql.sh好啦,看看是不是能直接执行mysql命令了呢

5

接下来就分析一下my.cnf这个配置文件的各参数意义basedir             mysql的安装目录datadir             数据库目录port                 指定服务端口,默认3306 端口server_id          pid文件路径socket              套接字skip-locking                   可避免mysql的外部锁定,降低系统出错几率skip-name-resolve         禁止mysql对外部连接进行DNS解析,可节约时间 key_buffer_size              设置索引缓存区大小,合理调节这个数值可以获得更好的索引处理性能,过度调大反而降低性能。参数没有可以自己添加sort_buffer_size              设置排序缓存区的大小 (每个连接独占)read_buffer_size             设置查询操作缓存区的大小 (每个连接独占)join_buffer_size              设置联合查询操作缓存区的大小 (每个连接独占)max_connections           设置服务器最大连接进程数

6

mysql的root用户没有密码是非常不安全的,接下来我们为它配置一个密码。注意 要给root用户添加密码是需要启动服务的,请确保你的Mysqld服务处于运行状态# mysqladmin  -u  root  password  'himysql'如果已经设置了密码,想去修改 就要在命令上添加 -p 参数,-p 参数是用来提醒输入密码的,就和mysql命令一样#  mysqladmin  -u  root  password  'himysql'  -p接下来输入旧密码就可以更改新密码了,再试一试,登陆mysql服务器是不是需要使用密码了呢?如果是在本机登陆mysql服务器 -h 选项是可以省略的,如果使用root登陆,连-u 参数都可以省略,如果没有密码登录,连 -p 都是可以省略的,比如你第一次启动服务,直接mysql就可以连接上去了

7

这个mysqladmin是Mysql服务器的管理程序,可用于执行检察配置文件、检查服务状态、关闭服务器、创建数据库以及删除数据库等的系统管理操作。其格式如下:mysqladmin    选项       参数  . . .                       create     db_name           创建一个名为db_name的新数据库                       debug                               将debug信息写入错误日志                       drop       db_name           删除一个名为db_name的数据库                       extended-status              显示服务器状态变量和他们的值                       flush-hosts                       刷新缓存中的所有信息                       flush-logs                         刷新所有日志信息                       flush-privileges                重新载入授权表                       flush-status                      清除状态变量                       flush-tables                      刷新所有的表                       flush-threads                   刷新线程的缓存                       ping                                  显示服务器运行状态                       processlist                       正在运行服务器线程的列表                       password   new_password     更改密码                       shutdown                         关闭服务器                       start-slave                        在从服务器上启动同步                       stop-slave                        在从服务器上关闭同步                        -u                 root             指定用户                        -h                 localhost     指定连接的主机                        -p                                     指定需要输入密码其中一些概念不懂没关系,先眼熟就行了,在后面的学习中将会慢慢了解

8

当我们用mysql命令登陆到服务器后,出现的' mysql > '我们应该怎么操作呢?在 mysql > 提示符下可以使用SQL语言或命令对数据库进行管理,每条SQL语句都以 ' ; ' 结束,且不区分大小写。用户可以通过上下键调出曾经输入过的命令。对数据库的操作不外乎增删查改,下面就看看一些很简单的命令吧!show  databases;                               查看当前存在的数据库use  数据库名称;                                  使用指定的数据库show  tables;                                     查看指定数据库有哪些表create  database  数据库名称;            创建新数据库drop   数据库名称;                               删除数据库

9

编译安装Mysql服务器到此也已经差不多了,除了编译时间长了些,按照步骤一步一步下来还是蛮简单的。如果想知道Mysql数据库的更多操作请看下一章:Mysql数据库的管理与备份恢复。一定要动手做一做哦!Enjoy Your Time !o(^▽^)o

注意事项
1

建议大家自己编译安装Mysql数据库,二进制包是我在CentOS6.5上,32位于64位各编译了一次

2

如果大家发现了上述有什么错误,记得向我反馈哦

推荐信息