linux源码安装mysql

时间:2021-10-03 09:14:46

一、环境:

系统版本:CentOS5.5

MySQL版本:mysql-5.5.22

 

二、步骤:

1. 安装需要系统库相关库文件:

 

Java代码  linux源码安装mysql
  1. [root@localhost ~]# yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*  

 

2.需要的两个包

Java代码  linux源码安装mysql
  1. [root@localhost /]# cd /usr/local/src/  
  2.   
  3. [root@localhost src]# ll  
  4.   
  5. total 29332  
  6.   
  7. -rw-r--r-- 1 root root  5517977 Jul 11 19:17 cmake-2.8.5.tar.gz  
  8.   
  9. -rw-r--r-- 1 root root 24464834 Jul 11 19:17 mysql-5.5.22.tar.gz  
 

1) 安装cmake

Java代码  linux源码安装mysql
  1. [root@localhost src]# tar zxvf cmake-2.8.5.tar.gz  
  2.   
  3. [root@localhost src]# cd cmake-2.8.5  
  4.   
  5. [root@localhost cmake-2.8.5]# ./bootstrap  
  6.   
  7. …… ……  
  8.   
  9. -- Build files have been written to: /usr/local/src/cmake-2.8.5  
  10.   
  11. ---------------------------------------------  
  12.   
  13. CMake has bootstrapped.  Now run gmake.  
  14.   
  15. [root@localhost cmake-2.8.5]# gmake  
  16. …… ……  
  17.   
  18. [100%] Building CXX object Tests/CMakeLib/CMakeFiles/runcompilecommands.dir/run_compile_commands.cxx.o  
  19.   
  20. Linking CXX executable runcompilecommands  
  21.   
  22. [100%] Built target runcompilecommands  
  23.   
  24. [root@localhost cmake-2.8.5]# gmake install  
  25.   
  26. [root@localhost cmake-2.8.5]# cd ..  
 

2)安装mysql

Java代码  linux源码安装mysql
  1. [root@localhost src]# groupadd mysql  
  2.   
  3. [root@localhost src]# useradd -g mysql mysql  
  4.   
  5. [root@localhost src]# tar zxvf mysql-5.5.22.tar.gz  
  6.   
  7. [root@localhost src]# cd mysql-5.5.22  
  8.   
  9. [root@localhost mysql-5.5.22]#  
  10. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  
  11. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  
  12. -DDEFAULT_CHARSET=utf8 \  
  13. -DDEFAULT_COLLATION=utf8_general_ci \  
  14. -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \  
  15. -DWITH_MYISAM_STORAGE_ENGINE=1 \  
  16. -DWITH_INNOBASE_STORAGE_ENGINE=1 \  
  17. -DWITH_MEMORY_STORAGE_ENGINE=1 \  
  18. -DWITH_READLINE=1 \  
  19. -DENABLED_LOCAL_INFILE=1 \  
  20. -DMYSQL_DATADIR=/var/mysql/data \  
  21. -DMYSQL_USER=mysql  
  22.   
出现错误
  1. -- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:83 (MESSAGE):  Curses library not found.  Please install appropriate package,
          remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.Call Stack (most recent call first):  cmake/readline.cmake:118 (FIND_CURSES)  cmake/readline.cmake:214 (MYSQL_USE_BUNDLED_READLINE)  CMakeLists.txt:268 (MYSQL_CHECK_READLINE)

    -- Configuring incomplete, errors occurred!
  2.   

安装所需包
  1. [root@slave7 mysql-5.5.22]# yum install ncurses-devel
  2. [root@slave7 mysql-5.5.22]# rm -rf CMakeCache.txt


  1. …… ……  
  2.   
  3. CMake Warning:  
  4.   
  5.   Manually-specified variables were not used by the project:  
  6.   
  7.     MYSQL_USER  
  8.   
  9.     WITH_MEMORY_STORAGE_ENGINE  
  10.   
  11. -- Build files have been written to: /usr/local/src/mysql-5.5.22  
  12.   
  13. [root@localhost mysql-5.5.22]#make  
  14.   
  15. …… ……  
  16.   
  17. [100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o  
  18.   
  19. Linking CXX executable my_safe_process  
  20.   
  21. [100%] Built target my_safe_process  
  22.   
  23. [root@localhost mysql-5.5.22]#make install  
  24.   
  25. …… ……  
  26.   
  27. -- Installing: /usr/local/mysql/man/man1/mysql_find_rows.1  
  28.   
  29. -- Installing: /usr/local/mysql/man/man1/mysql_upgrade.1  
  30.   
  31. -- Installing: /usr/local/mysql/man/man1/mysqlimport.1  
  32.   
  33. -- Installing: /usr/local/mysql/man/man1/mysql_client_test.1  
  34.   
  35. -- Installing: /usr/local/mysql/man/man8/mysqld.8  
  36.   
  37.    
  38.   
  39. [root@localhost mysql-5.5.22]# chmod +w /usr/local/mysql/  
  40.   
  41. [root@localhost mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/  
  42.   
  43. [root@localhost mysql-5.5.22]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18  
  44.   
  45. [root@localhost mysql-5.5.22]# mkdir -p /var/mysql  
  46.   
  47. [root@localhost mysql-5.5.22]# mkdir -p /var/mysql/data/  
  48.   
  49. [root@localhost mysql-5.5.22]# mkdir -p /var/mysql/log/  
  50.   
  51. [root@localhost mysql-5.5.22]# chown -R mysql:mysql /var/mysql/  
  52.   
  53. [root@localhost mysql-5.5.22]# cd support-files/  
  54.   
  55. [root@localhost support-files]# cp my-medium.cnf /etc/my.cnf  
  56.   
  57. [root@localhost support-files]# cp mysql.server /etc/init.d/mysql  
 

 

初始化安装。

 

Java代码  linux源码安装mysql
  1. [root@localhost support-files]# /usr/local/mysql/scripts/mysql_install_db \  
  2.   
  3. --defaults-file=/etc/my.cnf \  
  4.   
  5. --basedir=/usr/local/mysql \  
  6.   
  7. --datadir=/var/mysql/data \  
  8.   
  9. --user=mysql  
  10.   
  11. …… ……  
  12.   
  13. You can start the MySQL daemon with:  
  14.   
  15. cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &  
  16.   
  17. You can test the MySQL daemon with mysql-test-run.pl  
  18.   
  19. cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl  
  20.   
  21. Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!  
  22.   
  23. [root@localhost support-files]# chmod +x /etc/init.d/mysql  
  24.   
  25. [root@localhost support-files]# vi /etc/init.d/mysql  
  26.   
  27.  basedir=/usr/local/mysql  
  28.   
  29.  datadir=/var/mysql/data  
  30.   
  31. [root@localhost support-files]#chkconfig --add mysql  
  32.   
  33. [root@localhost support-files]#chkconfig --level 345 mysql on  
  34.   
  35. [root@localhost support-files]# cd /usr/local/mysql  
  36.   
  37. [root@localhost mysql]# service mysql start  
  38.   
  39. Starting MySQL.. SUCCESS!  
  40.   
  41. [root@localhost mysql]# mysql  
  42.   
  43. -bash: mysql: command not found  
  44.   
  45. [root@localhost mysql]# /usr/local/mysql/bin/mysql -uroot mysql  
  46.   
  47. Reading table information for completion of table and column names  
  48.   
  49. You can turn off this feature to get a quicker startup with -A  
  50.   
  51.    
  52.   
  53. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  54.   
  55. Your MySQL connection id is 1  
  56.   
  57. Server version: 5.5.22 Source distribution  
  58.   
  59.    
  60.   
  61. Copyright (c) 20002011, Oracle and/or its affiliates. All rights reserved.  
  62.   
  63.    
  64.   
  65. Oracle is a registered trademark of Oracle Corporation and/or its  
  66.   
  67. affiliates. Other names may be trademarks of their respective  
  68.   
  69. owners.  
  70.   
  71. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  72.   
  73. mysql> show databases;  
  74.   
  75. +--------------------+  
  76.   
  77. | Database           |  
  78.   
  79. +--------------------+  
  80.   
  81. | information_schema |  
  82.   
  83. | mysql              |  
  84.   
  85. | performance_schema |  
  86.   
  87. | test               |  
  88.   
  89. +--------------------+  
  90.   
  91. 4 rows in set (0.01 sec)  
  92.   
  93. mysql> exit  
  94.   
  95. Bye  
  96.   
  97. [root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin  
  98.   
  99. [root@localhost mysql]# mysql  
  100.   
  101. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  102.   
  103. Your MySQL connection id is 2  
  104.   
  105. Server version: 5.5.22 Source distribution  
  106.   
  107. Copyright (c) 20002011, Oracle and/or its affiliates. All rights reserved.  
  108.   
  109. Oracle is a registered trademark of Oracle Corporation and/or its  
  110.   
  111. affiliates. Other names may be trademarks of their respective  
  112.   
  113. owners.  
  114.   
  115. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  116.   
  117. mysql> show databases;  
  118.   
  119. +--------------------+  
  120.   
  121. | Database           |  
  122.   
  123. +--------------------+  
  124.   
  125. | information_schema |  
  126.   
  127. | mysql              |  
  128.   
  129. | performance_schema |  
  130.   
  131. | test               |  
  132.   
  133. +--------------------+  
  134.   
  135. 4 rows in set (0.00 sec)  
  136.   
  137. mysql> grant all privileges on *.* to root@'%' identified by 'joy' with grant option;  
  138.   
  139. Query OK, 0 rows affected (0.00 sec)  
  140.   
  141. mysql> flush privileges;  
  142.   
  143. Query OK, 0 rows affected (0.00 sec)  
  144.   
  145. mysql> exit  
  146.   
  147. Bye  
 

 

//设置停止防火墙

  linux源码安装mysql
  1. [root@localhost mysql]# /etc/init.d/iptables stop;  
  2.   
  3. Flushing firewall rules: [  OK  ]  
  4.   
  5. Setting chains to policy ACCEPT: filter [  OK  ]  
  6.   
  7. Unloading iptables modules: [  OK  ]  
 或添加3306端口允许访问
Java代码  linux源码安装mysql
  1. vi /etc/sysconfig/iptables  
  2. #添加3306端口  
  3. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT