mysql的三种安装方式(详细)
安装MySQL的方式常见的有三种:
1、rpm包形式
2、通用二进制形式
3、源码编译(重点)
yum/rpm安装适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景;
二进制安装比较简答方便,适合5.0-5.1和5.5-5.6系列,是很多专业DBA的选择;
普通linux运维人员多采用编译方式,5.0-5.1系列就是常规编译方式,5.5-5.6系列就是cmake编译方式。
mysql版本选择建议:
1.稳定版:选择开源社区版的稳定版GA版本
2.选择mysql数据库GA版本发布后6个月以上的GA版本
3.要选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本
4.最好向后较长时间没有更新发布的版本
-----------------------------------------------------------------------------------------------------------------------------------
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)新建用户以安全方式运行进程:
123 | groupadd useradd chown |
(2)安装并初始化mysql-5.5.28
首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.28-linux2.6-i686.tar.gz
1234567 | tar 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提供主配置文件:
12 | cd local /mysql cp |
(4)修改配置文件:
修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
(5)为mysql提供sysv服务脚本:
12 | cd local /mysql cp support-files/mysql.server /etc/rc.d/init.d/mysqld |
(6)添加至服务列表:
12 | chkconfig --add mysqld chkconfig on |
(7)而后就可以启动服务测试使用了。
1 | service |
3、源码编译
若想在5.0系列的红帽系统上进行源码编译安装MySQL必须借助一个跨平台编译器cmake
所以:
(1)首先安装cmake
安装cmake需要用make
可以是用yum安装,正常情况是安装好的,或者使用二进制安装。
确保which cmake
可以看到 /usr/local/bin/cmake
12345 | tar cd ./bootstrap make make |
(3)编译安装mysql-5.7.19
编译安装
12345678910111213 | tar cd mysql-5.7.19 groupadd -r mysql useradd -g mysql mysql mkdir -pv /data/mydata chown -R mysql:mysql /data/mydata chmod cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/boost make make install --------------------------------------------------------- 不成功咋办?清理了重来
如果想清理此前的编译所生成的文件,则需要使用如下命令: make clean 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 创建配置文件 |
使用cmake编译mysql-5.7.19,选项的方式有所改变简单介绍一下
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 是否启用性能分析功能
(4)编辑配置文件
vim /etc/my.cnf
添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
-----------------------------------------------------------------------------------------------------------
(5)配置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
tail -l /etc/profile
source /etc/profile
echo $PATH
(6)初始化mysql
cd /usr/local/mysql/bin/
./mysql_install_db --basedir=/usr/local/mysql --datadir = /data/mydata --user=mysql
报错
Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
出错原因
mysql 5.7不支持mysql_install_db,应该使用mysqld --initialize 完成实例初始化。
# 5.7.6之后版本初始系统数据库脚本(本文使用此方式初始化)
./mysqld--initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mydata
basedir 是mysql 用户的目录 datadir 是mysql数据库 data 的目录,存表空间等 |
创建执行脚本和启动服务
12345 | cp support-files/mysql.server /etc/rc.d/init.d/mysqld 复制脚本 chmod +x /etc/rc.d/init.d/mysqld 执行权限 chkconfig -- add mysqld 添加到服务列表中 service mysqld start 启动服务 bin/mysql 启动mysql |
解决mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists
http://blog.csdn.net/z_yttt/article/details/73650495
遇到的问题---mysql 启动错误-server PID file could not be found
http://blog.csdn.net/zzq900503/article/details/16120355
MySQL配置文件my.cnf参数优化和中文详解
https://blog.imdst.com/mysql-5-6-pei-zhi-you-hua/修改字符集
cat /etc/sysconfig/i18n