MySQL安装_源码安装

MYSQL的安装分三种:命令行安装、二进制安装和源码安装
命令行安装相对而言简单,我们就不做过多陈述,今天就着重讲讲MYSQL的源码安装
编译安装过程描述:
  •     1.下载源代码
  •     2.检查源码编译所需的依赖包是否齐全
  •     3.解压编译
  •     4.make && make install
  •     5.初始化数据目录
  •     6.数据库权限设置
  •     7.定义启动方式
软件安装的常规约定:
  •     软件安装包放在/usr/local/src下
  •     软件根目录basedir在/usr/local/xxx下,如:/usr/local/mysql
  •     配置文件在/etc/下,如:/etc/my.cnf
  •     数据目录datadir一般放在单独的磁盘上
  •     mysql服务名为mysqld
========
准备
========
#创建数据目录
[root@xxx ~]# mkdir /data/mysql
#创建根目录
[root@xxx ~]# mkdir /usr/local/mysqlrp
#进入软件存放目录
[root@xxx ~]# cd /usr/local/src/
[root@xxx src]# mv /root/mysql-5.6.24.tar.gz .
[root@xxx src]# tar -zxvf mysql-5.6.24.tar.gz
[root@xxx src]# cd mysql-5.6.24
#检查cmake是否安装,如果未安装,请使用yum install cmake或其它方式安装
[root@xxx mysql-5.6.24]# which cmake
    /usr/bin/cmake
#安装必备的依赖包
[root@xxx mysql-5.6.24]# yum install ncurses-devel
[root@xxx mysql-5.6.24]# yum install bison
#=======
编译
#=======
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysqlrp \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/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

[root@xxx mysql-5.6.24]# ls /usr/local/mysqlrp/
[root@xxx mysql-5.6.24]#
[root@xxx mysql-5.6.24]# ls /data/mysql/
[root@xxx mysql-5.6.24]#
[root@xxx mysql-5.6.24]# make
[root@xxx mysql-5.6.24]# ls /usr/local/mysqlrp/
[root@xxx mysql-5.6.24]# ls /data/mysql/
[root@xxx mysql-5.6.24]#
#make install时才会在根目录下生成文件
[root@xxx mysql-5.6.24]# make install
[root@xxx mysql-5.6.24]# ls /usr/local/mysqlrp/
    bin      data  include         lib  mysql-test  scripts  sql-bench
    COPYING  docs  INSTALL-BINARY  man  README      share    support-files
[root@xxx mysql-5.6.24]# ls /data/mysql/
[root@xxx mysql-5.6.24]#
[root@xxx mysql-5.6.24]# cd /usr/local/mysqlrp/
#创建mysql管理用户及组
[root@xxx mysqlrp]# groupadd mysql
[root@xxx mysqlrp]# useradd mysql -g mysql
#修改配置文件,修改根目录、数据目录位置。
[root@xxx local]# vi /etc/my.cnf
    ...
    [mysqld]
    basedir=/usr/local/mysqlrp   
    datadir=/data/mysql
#初始化数据目录
[root@xxx mysqlrp]# ./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf &
#制作mysql服务mysqld
[root@xxx mysqlrp]# cp support-files/mysql.server /etc/init.d/mysqld
#修改各个目录对应权限
[root@xxx mysqlrp]#chown -R mysql.mysql /usr/local/mysqlrp
[root@xxx mysqlrp]#chown -R mysql.mysql  /data/mysql
[root@xxx mysqlrp]#chown mysql.mysql  /etc/my.cnf
[root@xxx mysqlrp]#chown mysql.mysql  /etc/init.d/mysqld
[root@xxx mysqlrp]#chmod -R 755 /usr/local/mysqlrp
[root@xxx mysqlrp]#chmod -R 755 /data/mysql
root@xxx mysqlrp]#chmod  644 /etc/my.cnf
[root@xxx mysqlrp]#chmod 755 /etc/init.d/mysqld
#启动mysql服务
[root@xxx local]# service mysqld start
   Starting MySQL.          
[  OK  ]

# =======
#源码编译常见依赖包
# =======
kernel-headers-2.6.32-358.el6.x86_64.rpm
glibc-headers-2.1 2-1.107.el6.x86_64.rpm
glibc-devel-2.12-1.107.el6.x86_64.rpm
cpp-4.4.7-3.el6.x86_64.rpm
gcc-4.4.7-3.el6.x86_64.rpm
libstdc++-devel-4.4.7-3.el6.x86_64.rpm
gcc-c++-4.4.7-3.el6.x86_64.rpm
autoconf-2.63-5.1.el6.noarch.rpm
automake-1.11.1-4.el6.noarch.rpm
zlib-1.2.3-29.el6.x86_64.rpm
ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
libgcrypt-1.4.5-9.el6_2.2.x86_64.rpm
libtool-2.2.6-15.5.el6.x86_64.rpm
bison-2.4.1-5.el6.x86_64.rpm

#=======
#附实验2则,解释常见疑问
#实验1说明,数据目录初始化的时候,必须在根目录basedir下初始化目录(具体数据目录可以自定义),使用初始化脚本进行初始化。
#实验2说明,数据库在编译的时候会修改源码里面的内容,例如src/mysql-5.6.24/support-files/mysql.server ,会将根目录修改为编译时指定的根目录
#        数据库编译时指定数据目录,安装完成后mysql工具没有指定数据目录且根目录下没有data目录会优先将编译时指定的数据目录作为自己的数据目录
#=======


点击(此处)折叠或打开

  1. #=======
  2.     #实验1
  3.     #=======
  4.     [root@xxx mysqlrp]# mkdir /tmp/test
  5.     #=======
  6.     #测试进入临时目录,做数据目录初始化
  7.     #=======
  8.     [root@xxx mysqlrp]# cd /tmp/test/
  9.     [root@xxx test]# /usr/local/mysqlrp/scripts/mysql_install_db --user=mysql &
  10.             [1] 36700
  11.             [root@xxx test]# FATAL ERROR: Could not find ./bin/my_print_defaults

  12.             If you compiled from source, you need to run 'make install' to
  13.             copy the software into the correct location ready for operation.

  14.             If you are using a binary release, you must either be at the top
  15.             level of the extracted archive, or pass the --basedir option
  16.             pointing to that location.


  17.             [1]+ Exit 1 /usr/local/mysqlrp/scripts/mysql_install_db --user=mysql
  18.     [root@xxx test]# /usr/local/mysqlrp/scripts/mysql_install_db --user=mysql --datadir=/data/mysql &
  19.             [1] 36704
  20.             [root@xxx test]# FATAL ERROR: Could not find ./bin/my_print_defaults
  21.             
  22.             If you compiled from source, you need to run 'make install' to
  23.             opy the software into the correct location ready for operation.
  24.             
  25.             If you are using a binary release, you must either be at the top
  26.             level of the extracted archive, or pass the --basedir option
  27.             pointing to that location.
  28.             
  29.            
  30.             [1]+ Exit 1 /usr/local/mysqlrp/scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  31.     [root@xxx test]# /usr/local/mysqlrp/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysqlrp --datadir=/data/mysql &
  32.     #=======
  33.     #指定了根目录后总算初始化成功
  34.     #=======
  35.     [root@xxx mysqlrp]# cp support-files/mysql.server /etc/init.d/mysqld
  36.     [root@xxx mysqlrp]# chown -R mysql.mysql /usr/local/mysql
  37.     [root@xxx mysqlrp]# chown -R mysql.mysql /data/mysql/
  38.     [root@xxx mysqlrp]# mkdir log
  39.     [root@xxx mysqlrp]# chown -R mysql.mysql log
  40.     [root@xxx mysqlrp]# ./bin/mysqld_safe --user=mysql &
  41.             [1] 37694
  42.             [root@xxx mysqlrp]# 151113 15:45:58 mysqld_safe Logging to '/data/mysql/zc-appname-ip-ip.err'.
  43.             151113 15:45:59 mysqld_safe Starting mysqld daemon with databases from /data/mysql
  44.             151113 15:45:59 mysqld_safe mysqld from pid file /data/mysql/zc-appname-ip-ip.pid ended
  45.             
  46.             [1]+ Done ./bin/mysqld_safe --user=mysql
  47.     [root@xxx mysqlrp]# ps -ef|grep mysql
  48.             root 37847 12729 0 15:46 pts/3 00:00:00 grep mysql
  49.     #=======
  50.     #试图启动,失败
  51.     #=======
  52.     [root@xxx local]# mv mysqlrp/ mysql
  53.     [root@xxx mysqlrp]# chown -R mysql.mysql /usr/local/mysql
  54.     [root@xxx local]# mv mysql/ mysqlrp
  55.     [root@xxx local]# service mysqld start
  56.     Starting MySQL.The server quit without updating PID file (/data/mysql/zc-appname-ip-ip.pid). [FAILED]
  57.     #=======
  58.     #试图启动,失败
  59.     #=======
  60.     [root@xxx local]# cd mysqlrp/
  61.     [root@xxx mysqlrp]# ./bin/mysqld
  62.     mysqld mysqld_multi mysqld_safe mysqldump mysqldumpslow
  63.     [root@xxx mysqlrp]# ./bin/mysqld_safe --user=mysql&
  64.     [1] 38052
  65.     [root@xxx mysqlrp]# 151113 15:49:31 mysqld_safe Logging to '/data/mysql/zc-appname-ip-ip.err'.
  66.     151113 15:49:31 mysqld_safe Starting mysqld daemon with databases from /data/mysql
  67.     151113 15:49:32 mysqld_safe mysqld from pid file /data/mysql/zc-appname-ip-ip.pid ended

  68.     [1]+ Done ./bin/mysqld_safe --user=mysql
  69.     [root@xxx mysqlrp]# ps -ef|grep mysql
  70.     root 38205 12729 0 15:49 pts/3 00:00:00 grep mysql
  71.     #=======
  72.     #试图启动,失败
  73.     #=======
  74.     [root@xxx mysqlrp]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ &
  75.     #=======
  76.     #初始化数据目录成功
  77.     #=======
  78.     [root@xxx mysqlrp]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysqlrp/data/ &
  79.     #=======
  80.     #再次初始化数据目录,成功
  81.     #=======
  82.     [root@xxx mysqlrp]# ./bin/mysqld_safe --user=mysql &
  83.     [1] 38312
  84.     [root@xxx mysqlrp]# 151113 15:56:03 mysqld_safe Logging to '/usr/local/mysqlrp/data/zc-appname-ip-ip.err'.
  85.     151113 15:56:03 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysqlrp/data

  86.     [root@xxx mysqlrp]# ps -ef|grep mysql
  87.     root 38312 12729 0 15:56 pts/3 00:00:00 /bin/sh ./bin/mysqld_safe --user=mysql
  88.     mysql 38441 38312 3 15:56 pts/3 00:00:00 /usr/local/mysqlrp/bin/mysqld --basedir=/usr/local/mysqlrp --datadir=/usr/local/mysqlrp/data --plugin-dir=/usr/local/mysqlrp/lib/plugin --user=mysql --log-error=/usr/local/mysqlrp/data/zc-appname-ip-ip.err --pid-file=/usr/local/mysqlrp/data/zc-appname-ip-ip.pid --socket=/tmp/mysql.sock
  89.     root 38465 12729 0 15:56 pts/3 00:00:00 grep mysql
  90.     #=======
  91.     #试图启动,成功
  92.     #=======

  93.     #=======
  94.     #实验2
  95.     #=======
  96.     [root@xxx mysqlrp]# 151113 15:56:43 mysqld_safe mysqld from pid file /usr/local/mysqlrp/data/zc-appname-ip-ip.pid ended
  97.     ps
  98.       PID TTY TIME CMD
  99.     12729 pts/3 00:00:00 bash
  100.     38471 pts/3 00:00:00 ps
  101.     [1]+ Done ./bin/mysqld_safe --user=mysql
  102.     [root@xxx mysqlrp]# ps -ef|grep mysql
  103.     root 38473 12729 0 15:56 pts/3 00:00:00 grep mysql
  104.     [root@xxx mysqlrp]# service mysqld start
  105.     Starting MySQL.The server quit without updating PID file (/[FAILED]ql/zc-appname-ip-ip.pid).
  106.     [root@xxx mysqlrp]#
  107.     [root@xxx local]# cp src/mysql-5.6.24/support-files/mysql.server /etc/init.d/mysqldcp: overwrite `/etc/init.d/mysqld'? y
  108.     [root@xxx local]# service mysqld start
  109.     /etc/init.d/mysqld: line 256: my_print_defaults: command not found
  110.     /etc/init.d/mysqld: line 276: cd: /usr/local/mysqlrp: No such file or directory
  111.     Starting MySQLCouldn't find MySQL server (/usr/local/mysqlr[FAILED]sqld_safe)
  112.     [root@xxx local]# mv mysql mysqlrp
  113.     [root@xxx local]# service mysqld start
  114.     Starting MySQL.The server quit without updating PID file (/[FAILED]ql/zc-appname-ip-ip.pid).
  115.     [root@xxx local]# vi /etc/my.cnf
  116.         datadir=xxxx
  117.     [root@xxx local]# service mysqld start
  118.     Starting MySQL.
  119.     [ OK ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126478/viewspace-1987038/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30126478/viewspace-1987038/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进行 MySQL 源码安装,您可以按照以下步骤进行操作: 1. 下载 MySQL 源码:您可以从 MySQL 官方网站(https://dev.mysql.com/downloads/mysql/)上获取最新的 MySQL 源码包,并选择合适的版本进行下载。 2. 安装编译工具:在开始之前,请确保您的系统已安装了必要的编译工具和依赖项。根据您的操作系统,可以使用以下命令来安装所需的编译工具: - Ubuntu/Debian: ``` sudo apt-get install build-essential cmake ``` - CentOS/Fedora: ``` sudo yum install gcc-c++ cmake ``` 3. 解压源码包:将下载的源码包解压到您选择的目录中。 4. 创建构建目录:切换到源码目录,并创建一个用于构建的目录。 ``` cd mysql-x.x.x mkdir build cd build ``` 5. 配置构建选项:运行 CMake 命令来配置构建选项。您可以根据实际需求进行配置,以下是一些常用选项: - `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql`:指定 MySQL安装路径。 - `-DMYSQL_DATADIR=/var/lib/mysql`:指定 MySQL 数据文件的存储路径。 - `-DSYSCONFDIR=/etc`:指定配置文件的存储路径。 - `-DWITH_INNOBASE_STORAGE_ENGINE=1`:启用 InnoDB 存储引擎。 - `-DWITH_PARTITION_STORAGE_ENGINE=1`:启用分区存储引擎。 - `-DWITH_BOOST=/path/to/boost`:指定 Boost 库的路径(如果需要)。 例如,运行以下命令进行配置: ``` cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql ``` 6. 编译和安装:运行以下命令来编译源码安装 MySQL: ``` make sudo make install ``` 7. 初始化数据库:使用以下命令初始化 MySQL 数据库: ``` sudo /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql ``` 8. 配置 MySQL:根据您的需求编辑 MySQL 的配置文件,通常位于 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`。 9. 启动 MySQL 服务:运行以下命令启动 MySQL 服务: ``` sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & ``` 10. 连接到 MySQL:使用以下命令连接到 MySQL 数据库: ``` mysql -u root -p ``` 以上是基本的 MySQL 源码安装过程,您可以根据实际需求进行调整和配置。注意,这只是一个简单的指南,具体的步骤可能会有所不同,取决于您的系统和要求。建议在安装之前查阅官方文档以获取更详细的安装指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值