centOS7下的MYSQL安装和配置
2017-01-22 01:36
609 查看
由于在工作中最常用的开发是windows下集成的lamp。每次在linux下安装和配置mysql时,总会遇到不同的问题。这次就把在CentOS7下安装和配置mysql的过程记录下来,本次安装采用源码安装的方式。
由于之前使用5.7版本,编译到47%左右时经常会卡死。网上很多人出现这个情况,据说是因为5.7版本编译比较吃内存。为了方便快捷,我采用5.5版本。平台选择为源码安装。下载tar.gz格式的linux通用版,复制链接地址,使用wget命令下载:
下载完成后解压
开始编译前,需要确保mysql的安装目录和数据存放目录存在,一般需要预先创建:
在解压出的源码目录下,进行CMake编译的参数配置。
各项参数以及说明如下:
敲击回车后开始预编译。
完成以上过程后,就是
并将之前建立好的两个目录权限更改
在mysql的源码目录存在一个support-files文件夹,里面的内容是mysql的配置模板。具体的配置说明可以参考这个老兄的博客my.conf配置说明。在这里将mysql加入系统服务中,并配置开机自动启动。
进行mysql数据库的初始化mysql_install_db。安装完mysql server时,一般要执行这个脚本对数据库初始化。运行这个脚本,会初始化mysql的data目录,并且创建那些系统表。
至此,mysql的安装和配置已经ok了。
手动启动mysql:
进入mysql的安装目录,执行
进入mysql命令行
结果输出已存在的数据库。我们的sql已经配置并成功运行了。
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两个参数
下载源码包
在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两个参数
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- Centos6 编译安装Python
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 解决mysql 开启logbin 导致存储过程报错
- CentOS 8 安装图解
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- MySQL 备份和恢复策略
- CentOS 6.2实战部署Nginx+MySQL+PHP