mysql的三种安装方式

来源:互联网 发布:js给class加样式 编辑:程序博客网 时间:2024/06/09 14:04

mysql的三种安装方式(详细)

安装MySQL的方式常见的有三种:

 1、rpm包形式

 2、通用二进制形式

 3、源码编译(重点)


1、yum/rpm安装适合对数据库要求不太高的场合,例如并发不大,公司内部,企业内部的一些应用场景;

2、二进制安装比较简答方便,适合5.0-5.1和5.5-5.6系列,是很多专业DBA的选择;

3、普通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)新建用户以安全方式运行进程:

1
2
3
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

1
2
3
4
5
6
7
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提供主配置文件:

1
2
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服务脚本:

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

(6)添加至服务列表:

1
2
chkconfig--add mysqld
chkconfig mysqld on

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

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

3、源码编译

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

所以:

(1)首先安装cmake

使用二进制安装。

确保输入 which cmake  

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

安装方式如下:

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

(3)编译安装mysql-5.7.19

编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
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

----------------------------------------------------------

使用cmake编译mysql-5.7.19,选项的方式有所改变简单介绍一下

指定安装文件的安装路径时常用的选项:

-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 = /data/mydata

-----------------------------------------------------------------------------------------------------------

(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 的目录,存表空间等


(7)创建执行脚本和启动服务

1
2
3
4
5
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/




原创粉丝点击