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

2025-11-05 11:16:07

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

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

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

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

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/mysql

datadir = /usr/local/mysql/data

指定安装目录和数据库目录就可以了,其他参数先不用管。如图一所示

接下来就可以初始化数据库了

# cd  /usr/local/mysql

# scripts/mysql_install_db --user=mysql

结果如图二所示就代表成功了,可以用 echo $? 查看返回值

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

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

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命令了呢

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就可以连接上去了

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                                     指定需要输入密码

其中一些概念不懂没关系,先眼熟就行了,在后面的学习中将会慢慢了解

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

8、当我们用mysql命令登陆到服务器后,出现的" mysql > "我们应该怎么操作呢?

在 mysql > 提示符下可以使用SQL语言或命令对数据库进行管理,每条SQL语句都以 " ; " 结束,且不区分大小写。用户可以通过上下键调出曾经输入过的命令。

对数据库的操作不外乎增删查改,下面就看看一些很简单的命令吧!

show  databases;                               查看当前存在的数据库

use  数据库名称;                                  使用指定的数据库

show  tables;                                     查看指定数据库有哪些表

create  database  数据库名称;            创建新数据库

drop   数据库名称;                               删除数据库

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢