您的位置:首页 > 运维架构 > Linux

centOS7下的MYSQL安装和配置

2017-01-22 01:36 609 查看
由于在工作中最常用的开发是windows下集成的lamp。每次在linux下安装和配置mysql时,总会遇到不同的问题。这次就把在CentOS7下安装和配置mysql的过程记录下来,本次安装采用源码安装的方式。

下载源码包

在mysql官网找到Mysql Community Server的下载页面:



由于之前使用5.7版本,编译到47%左右时经常会卡死。网上很多人出现这个情况,据说是因为5.7版本编译比较吃内存。为了方便快捷,我采用5.5版本。平台选择为源码安装。下载tar.gz格式的linux通用版,复制链接地址,使用wget命令下载:



wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.54.tar.gz


下载完成后解压

tar -zxvf mysql-5.5.54.tar.gz


安装5.5版本所需要的依赖

mysql有众多的依赖包,常见的如下。在编译过程中缺少哪个依赖包的话,会自动提示,我们根据缺失提示信息补安依赖就可以了。另外一个坑,就是版本的问题,mysql5.5和mysql5.7对依赖包的版本也可能出现不同,总之,若有问题,编译时会返回给我们错误信息,我们根据错误信息修正就ok了。

sudo yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel bison boost


CMAKE的使用,mysql编译和安装

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。(以上内容摘自百科)。、

开始编译前,需要确保mysql的安装目录和数据存放目录存在,一般需要预先创建:

mkdir -p usr/local/mysql
mkdir -p usr/local/mysql/data


在解压出的源码目录下,进行CMake编译的参数配置。

各项参数以及说明如下:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data       \    #数据文件存放位置
-DSYSCONFDIR=/etc              \                                  #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1    \       #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \     #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \        #支持Memory引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      \   #连接数据库socket路径
-DMYSQL_TCP_PORT=3306                  \               #端口
-DENABLED_LOCAL_INFILE=1            \                #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1  \   #安装支持数据库分区
-DEXTRA_CHARSETS=all                  \                   #安装所有的字符集
-DDEFAULT_CHARSET=utf8              \                   #默认字符
-DDEFAULT_COLLATION=utf8_general_ci


敲击回车后开始预编译。

完成以上过程后,就是
make
编译;
sudo make install
安装。

安装后的配置

安装完成后,需要创建mysql用户以及用户组

groupadd mysql
useradd -r -g mysql mysql


并将之前建立好的两个目录权限更改

cd /usr/local/mysql
chown -R root:mysql . //把当前目录中所有文件的所有者设为root,所属组为mysql
chown -R mysql:mysql data


在mysql的源码目录存在一个support-files文件夹,里面的内容是mysql的配置模板。具体的配置说明可以参考这个老兄的博客my.conf配置说明。在这里将mysql加入系统服务中,并配置开机自动启动。

cp support-files/mysql.server  /etc/init.d/mysqld //将mysql的启动服务添加到系统服务中

cd /etc/init.d/
   chkconfig --add mysqld                           //将mysql加到启动服务列表里
   chkconfig mysqld on                              //让系统启动时自动打开mysql服务


进行mysql数据库的初始化mysql_install_db。安装完mysql server时,一般要执行这个脚本对数据库初始化。运行这个脚本,会初始化mysql的data目录,并且创建那些系统表。

cd /usr/local/mysql
scripts/mysql_install_db --user=mysql


至此,mysql的安装和配置已经ok了。

启动mysql

由于已经将mysql配置进了系统的服务,故可以使用服务的方式启动:

service mysqld start
service mysqld stop
service mysqld restart


手动启动mysql:

cd /usr/local/mysql
./bin/mysqld_safe --user=mysql &   //启动MySQL
mysqladmin -u root -p shutdown     // 停止MySQL


进入mysql的安装目录,执行

./mysql -u root


进入mysql命令行

show databases;


结果输出已存在的数据库。我们的sql已经配置并成功运行了。

可能遇到的问题

1、通过服务的方式启动mysql时,提示:

env: /etc/init.d/mysqld: Permission denied

该原因为init.d目录下的mysqld文件权限不足,执行:chmod a+wrx /etc/init.d/mysqld后重新尝试

2、注意etc/my.cnf文件的内容和cmake安装时配置的参数是否一致,不一致需要改动my.cnf的内容,主要是socket和datadir两个参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos mysql