mysql的三种安装方式

时间:2022-05-26 10:25:41

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版本

mysql的三种安装方式

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
-r mysql
useradd
-g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
chown
-R mysql:mysql /mydata/data

(2)安装并初始化mysql-5.5.28

首先下载平台对应的mysql版本至本地,这里是32位平台,因此,选择的为mysql-5.5.28-linux2.6-i686.tar.gz

1234567 tar
xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/
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
/usr/
local/mysql
cp
support-files/my-large.cnf /etc/my.cnf

(4)修改配置文件:

修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行: 

thread_concurrency = 2 

另外还需要添加如下行指定mysql数据文件的存放位置: 

datadir = /mydata/data

(5)为mysql提供sysv服务脚本:

12 cd
/usr/
local/mysql
 cp support-files/mysql.server /etc/rc.d/init.d/mysqld

(6)添加至服务列表:

12 chkconfig--add mysqld chkconfig
mysqld
on

(7)而后就可以启动服务测试使用了。

1 service
mysqld start
------------------------------------------------------------------------------------------------------------------------

3、源码编译

若想在5.0系列的红帽系统上进行源码编译安装MySQL必须借助一个跨平台编译器cmake

所以:

(1)首先安装cmake

安装cmake需要用make

可以是用yum安装,正常情况是安装好的,或者使用二进制安装。

确保which cmake  

可以看到 /usr/local/bin/cmake 

12345 tar
xf cmake-...tar.gz
cd
cmake-..
./bootstrap 
使用此脚本来检测编译环境
makemake
install
(2)安装依赖包
yum install ncurses-devel -y

(3)编译安装mysql-5.7.19

编译安装

12345678910111213 tar
xf mysql-5.7.19.tar.gz
 cd mysql-5.7.19  groupadd -r mysql  useradd -g mysql mysql  mkdir -pv /data/mydata  chown -R mysql:mysql /data/mydata chmod
-R 1777 /tmp/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mydata \
-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 \
       -DDOWNLOAD_BOOST=1  \       -DWITH_BOOST=/usr/local/boost 
 make make install---------------------------------------------------------不成功咋办?清理了重来

如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean 
rm CMakeCache.txt

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