mysql源码安装

  • 一、环境准备
  • 1、克隆虚拟机
  • 2、查看环境
  • 二、mysql安装
  • 2.1 根据mysql的==版本不同安装方法不同==:
  • a、常规方式编译安装mysql就是延续早期的mysql的安装3部曲 即
  • b 、cmake 编译软件安装
  • 2.2 软件包安装
  • 3、配置、初始化单实例的MySQL数据文件和服务==(单实例,重要)==
  • 3.1、查看默认模版配置文件
  • 3.2、选择配置文件
  • 3.3、配置环境变量
  • 3.4、初始化数据文件
  • 3.5、配置MySql的服务mysqld
  • 3.6、设置用户名和密码,并且登录MySql服务器



安装配置环境:

操作系统:

centos 6.5

mysql 版本

5.5.32

MySQL的安装目录

/application/mysql-5.5.32

MySQL数据文件的安装目录

/application/mysql-5.5.32/data

MySQL默认的字符编码

UTF8

一、环境准备

1、克隆虚拟机

1.1.开机后提示没有网卡

MySQL 源码编译安装日志存放目录_MySQL


1.2、编辑网卡

vim /etc/sysconfig/network-scripts/ifcfg-eth0

MySQL 源码编译安装日志存放目录_MySQL 源码编译安装日志存放目录_02


删除uuid notallow=yes

1.3、清空 /etc/udev/rules.d/70-persistent-net.rules

>  /etc/udev/rules.d/70-persistent-net.rules

1.4、reboot
虚拟机以克隆ok

2、查看环境

MySQL 源码编译安装日志存放目录_centos_03


系统安装时选择最小化安装时

MySQL 源码编译安装日志存放目录_mysql_04

yum groupinstall “Compatibility libraries” “Base” “Development tools”

yum groupinstall “debugging Tools” “Dial-up Networking Support”

不要使用yum的删除功能删除软件,会删除相关依赖**

MySQL 源码编译安装日志存放目录_mysql_05

二、mysql安装

2.1 根据mysql的版本不同安装方法不同

a、常规方式编译安装mysql就是延续早期的mysql的安装3部曲 即

/configure; make ;make install

.生产场景的具体命令及参数为:
此种方法适用于所有mysql5.0.xx - 5.1.xx产品系列,是最常规的编译方式
cmake安装
由于mysql5.5.XX-5.6.xx 产品系列的特殊性,所以编译方式也和早期的产品安装方式不同,采用cmake或或gmake方式进行编译 安装,即 ./cmake ;make ;make install

b 、cmake 编译软件安装

安装软件及依赖

yum install ncurses-devel   cmake   -y

make软件源码安装

cd /home/oldboy/tools 
  tar xf cmake-2.8.8.tar.gz 
  cd cmake-2.8.8
 ./configure

运行

gmake
gmake install

常规软件 :
安装远程上传软件rz

yum install lrzsz    -y
rz  上传
sz  下载

2.2 软件包安装

(1)创建mysql 软件包存放目录 /home/oldboy/tools

mkdir -p /home/oldboy/tools
 ②“–P :递归创建
#####################创建用户和用户组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
 ①“–s /sbin/nologin”:表示禁止该用户登录,加强安全。
        ②“–g mysql”:指定属于mysql组。
        ③“–M”:表示不创建用户家目录。
		(2)创建mysql安装目录及数据存放目录

创建mysql的安装目录
[root@centos65-mini /]# mkdir –p /application/mysql-5.5.32
在tools文件夹对mysql安装包进行解压
         tar xf mysql-5.5.32.tar.gz   
          cd mysql-5.5.32

      (3)编译mysql

切换到解压缩后的mysql-5.5.32源码目录下,执行下列cmake命令,进行编译(重要)
注意01:下述cmake命令可以重复使用。
注意02:目录“/application/mysql-5.5.32”为用户自定义的“mysql安装目录”。
注意03:提示:编译时,可配置的选项有很多,具体可以参考结尾附录或者官方文档。
官方文档mysql5.1_chs.chm,2.8. 使用源码分发版安装MySQL
下述命令很重要,可以复用。
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSET=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=on \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPL_ESTORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_ESTORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_ENBEDDED_SERVER=1 \
-DWITH_DEBUG=0


(4)安装mysql
 make && make install
如果上述安装过程中没有出错,则至此,就完成了MySql软件的安装。在安装完成之后,就会在根目录下出现一个“application”的文件夹,如下图所示。

 
(5)创建一个Link文件
 ln –s /application/mysql-5.5.32/ /application/mysql
提醒的事项

至此,就完成了以编译源码的方式安装MySQL,安装完MySQL数据库后,还要进行各种配置,接下来就需要对MySql进行配置。
若要安装“多实例”MySQL数据库,则下列“配置、初始化单实例的MySQL数据文件和服务”笔记可以跳过去。

3、配置、初始化单实例的MySQL数据文件和服务==(单实例,重要)==

3.1、查看默认模版配置文件

在MySql-5.5.32的源码安装目录下有一个文件夹“support-files”,MySQL常用的各种模版配置文件都在该目录下存放的。

[root@centos65-mini mysql-5.5.32]# pwd
/root/zj-tools/mysql-5.5.32
[root@centos65-mini mysql-5.5.32]# cd support-files/
[root@centos65-mini support-files]# ls
binary-configure magic mysql-log-rotate.sh
binary-configure.sh Makefile mysql.m4
build-tags my-huge.cnf mysql-multi.server.sh
CMakeFiles my-huge.cnf.sh mysql.server
cmake_install.cmake my-innodb-heavy-4G.cnf mysql.server.sh
CMakeLists.txt my-innodb-heavy-4G.cnf.sh mysql.server-sys5.sh
compiler_warnings.supp my-large.cnf MySQL-shared-compat.spec
config.huge.ini my-large.cnf.sh MySQL-shared-compat.spec.sh
config.huge.ini.sh my-medium.cnf mysql.spec
config.medium.ini my-medium.cnf.sh mysql.spec.sh
config.medium.ini.sh my-small.cnf ndb-config-2-node.ini
config.small.ini my-small.cnf.sh ndb-config-2-node.ini.sh
config.small.ini.sh mysql.5.5.32.spec plugins.files
CTestTestfile.cmake mysqld_multi.server RHEL4-SElinux
dtrace mysqld_multi.server.sh
MacOSX mysql-log-rotate
[root@centos65-mini support-files]#

3.2、选择配置文件

测试环境选择小的,生产环境可以根据硬件选择,例如:my-innodb-heavy-4G.cnf
下列命令将MySQL源目录下的配置文件拷贝到“/etc”目录下。
[root@centos65-mini support-files]# cp my-small.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf’? y
[root@centos65-mini support-files]#

3.3、配置环境变量

#echo 'export PATH=/application/mysql/bin:$PATH' >> /etc/profile
# tail -l /etc/profile
# source /etc/profile
# echo $PATH

#####此处注意:“/application/mysql/bin”路径与“MySQL 源码编译安装日志存放目录_MySQL_06PATH”的前边,这样的话当使用mysql相关的命令时,就会先去寻找编译的MySql这个版本的命令。
因为,未来的生产系统中,有可能已经存在yum或者rpm方式安装的mysql,这样的话,当使用mysqldump等mysql命令时,会先去寻找已经存在的mysql命令。
即使用yum或者rpm安装的客户端会去连接“编译版本的”MySql服务端,从而造成驴头不对马嘴的错误。
故障案例:
由于“/application/mysql/bin”路径放置在“$PATH”后边,而出现的棘手错误案例:
http://oldboy.blog.51cto.com/2561410/1122867

3.4、初始化数据文件

(容易出错的步骤)

# mkdir –p /application/mysql/data
####创建mysql数据文件目录,若在安装mysql软件的过程中已经创建了,则不需要创建该目录。
####修改数据文件所在目录的用户和用户组
# chown –R mysql:mysql /application/mysql/data
#####调整/tmp权限,否则初始化会错误。
# chmod –R 1777 /tmp
安装mysql数据库文件,注意命令路径:
mysql的初始化脚本
[root@centos65-mini scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
特别提示:如果用mysql5.0,5.1,省略指定datadir会出错。
下列为初始化成功后,MySQL的一些自带信息,其中包括设置和修改MySql的用户密码等。

 1 WARNING: The host 'centos65-mini' could not be looked up with resolveip.
 2 This probably means that your libc libraries are not 100 % compatible
 3 with this binary MySQL version. The MySQL daemon, mysqld, should work
 4 normally with the exception that host name resolving will not work.
 5 This means that you should use IP addresses instead of hostnames
 6 when specifying MySQL privileges !
 7 Installing MySQL system tables...
 8 OK
 9 Filling help tables...
10 OK
11 
12 To start mysqld at boot time you have to copy
13 support-files/mysql.server to the right place for your system
14 
15 PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
16 To do so, start the server, then issue the following commands:
17 
18 /application/mysql/bin/mysqladmin -u root password 'new-password'
19 /application/mysql/bin/mysqladmin -u root -h centos65-mini password 'new-passwor                d'
20 
21 Alternatively you can run:
22 /application/mysql/bin/mysql_secure_installation
23 
24 which will also give you the option of removing the test
25 databases and anonymous user created by default.  This is
26 strongly recommended for production servers.
27 
28 See the manual for more instructions.
29 
30 You can start the MySQL daemon with:
31 cd /application/mysql ; /application/mysql/bin/mysqld_safe &
32 
33 You can test the MySQL daemon with mysql-test-run.pl
34 cd /application/mysql/mysql-test ; perl mysql-test-run.pl
35 
36 Please report any problems with the /application/mysql/scripts/mysqlbug script!
37 
38 [root@centos65-mini scripts]#

【拓展】
“WARNING: The host ‘centos65-mini’ could not be looked up with resolveip.”
该警告信息对MySQL的功能不会造成影响,但是,可以通过以下设置来消除掉该警告。
原因:主机名与IP地址的映射问题。
解决方案:vim hosts,将本机的主机名添加到该文件中。

3.5、配置MySql的服务mysqld

(1)配置MySQL的服务mysqld
进入MySql-5.5.32的源码安装目录下的文件夹“support-files”,将其中的“mysql.server”拷贝到目录“/etc/init.d/mysqld”下。

[root@centos65-mini support-files]# cp mysql.server /etc/init.d/mysqld
[root@centos65-mini support-files]#
[root@centos65-mini support-files]# chmod +x /etc/init.d/mysqld
[root@centos65-mini support-files]#

(2)启动MySQL服务器

[root@centos65-mini support-files]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@centos65-mini support-files]#

(3)确认MySQL服务器是否启动成功:

[root@centos65-mini support-files]# netstat -lntup | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 36586/mysqld
[root@centos65-mini support-files]#

3.6、设置用户名和密码,并且登录MySql服务器

(1)设置MySql数据的用户名和密码

[root@centos65-mini support-files]# /application/mysql/bin/mysqladmin -u root password 'new-password'
[root@centos65-mini support-files]# /application/mysql/bin/mysqladmin -u root -h centos65-mini password 'new-passwor d'

(2)登录到MySQL数据库服务器

[root@centos65-mini support-files]# mysql -uroot -pnew-password

至此,MySQL的基本配置完成