首页 > 数据库 > MySQL > 正文

Linux/Ubuntu下CMake编译MySQL教程

2024-07-24 12:38:00
字体:
来源:转载
供稿:网友

使用Linux+Vim写PHP简直是一种享受,下面是我的Vim配置和安装的插件.

1.下载MySQL 5.5.28源码包

下载地址:http://www.mysql.com/downloads/mysql/#downloads

在MySQL下载页面的下拉框选择“Source Code”,然后选择最下面的tar.gz格式,开始下载。wget开始可以使用:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz这个地址。

2.添加MySQL用户和组,代码如下:

sudo groupadd mysql

sudo useradd -r -g mysql mysql

3.安装一些需要的软件,代码如下:

sudo apt-get install cmake automake autoconf libtool gcc g++ bison

如果只安装上面的扩展,编译过程总会出现这样的错误:-- 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.,则需要多安装libncurses5-dev包.

sudo apt-get install libncurses5-dev

提示,为了保证速度,请更新Ubuntu源为最快的源:Ubuntu更新源推荐.

4.CMake编译MySQL,代码如下:

  1. #创建目录 
  2. sudo mkdir /data/mysql/ 
  3.  
  4. #开始编译(注意下面的命令是一句,实际情况是没有换行的,这里为了方便添加注释) 
  5. sudo cmake 
  6. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安装路径 
  7. -DMYSQL_DATADIR=/data/mysql/            #数据文件存放位置 
  8. -DSYSCONFDIR=/etc                       #my.cnf路径 
  9. -DWITH_MYISAM_STORAGE_ENGINE=1          #支持MyIASM引擎 
  10. -DWITH_INNOBASE_STORAGE_ENGINE=1        #支持InnoDB引擎 
  11. -DWITH_MEMORY_STORAGE_ENGINE=1          #支持InnoDB引擎 
  12. -DWITH_READLINE=1                       #快捷键功能(我没用过) 
  13. -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      #连接数据库socket路径 
  14. -DMYSQL_TCP_PORT=3306                   #端口 
  15. -DENABLED_LOCAL_INFILE=1                #允许从本地导入数据 
  16. -DWITH_PARTITION_STORAGE_ENGINE=1       #安装支持数据库分区 
  17. -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk   #安装需要的字符集 
  18. -DDEFAULT_CHARSET=utf8                  #默认字符 
  19. -DDEFAULT_COLLATION=utf8_general_ci     #默认字符集 
  20.  
  21. #make安装 
  22. sudo make && make install 

5.配置MySQL

这一步中需要注意的是my.cnf的加载顺序,Linux优先级从高到低/etc/my.cnf->/etc/mysql/my.cnf->SYSCONFDIR/my.cnf->$MYSQL_HOME/my.cnf,高优先级的my.cnf设置会覆盖低优先级的my.cnf,所以一般把config文件copy到etc中即可,代码如下:

  1. #如果/etc下没有my.cnf 
  2. sudo cp support-files/my-medium.cnf /etc/my.cnf 
  3.  
  4. #设置权限 
  5. sudo chmod +x /usr/local/mysql 
  6. sudo chown -R mysql.mysql /usr/local/mysql 
  7.  
  8. #配置开机自启动 
  9. sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
  10. sudo chmod +x /etc/init.d/mysql 
  11. sudo chkconfig –list 
  12. sudo update-rc.d mysql defaults `/sbin/chkconfig –add mysql; /sbin/chkconfig mysql on
  13. sudo chkconfig –list mysql 
  14.  
  15. #修改my.cnf配置 
  16. vim /etc/my.cnf 
  17.  
  18. #[mysqld] 添加: 
  19. datadir=/data/mysql 
  20. default-storage-engine=MyISAM 
  21.  
  22. #以下可选: 
  23. log-error = /data/mysql/error.log 
  24. pid-file = /home/mysql/mysql.pid 
  25. user = mysql 
  26. tmpdir = /tmp 
  27.  
  28. #安装默认数据表 
  29. /usr/local/mysql/scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/da/mysql –user=mysql 
  30.  
  31. #启动MySQL 
  32. /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf & 
  33. #或者 
  34. /etc/init.d/mysql start (service mysql start) 
  35. --Vevb.com 
  36. #测试MySQL是否启动 
  37. # 1)查看是否有进程mysql 
  38. ps -ef | grep mysql 
  39. # 2)查看端口是否运行 
  40. netstat -tnl | grep 3306 
  41. # 3)读取mysql版本信息 
  42. mysqladmin version 
  43. ##安装成功,Thanks God! 

到此MySQL编译完成,如果这个时候MySQL无法启动,那么多问题基本上都处在my.cnf的位置和设置上,最后进入MySQL修改root用户的密码,当前密码为空:

UPDATE user SET password=PASSWORD("new password") WHERE user='root';

FLUSH PRIVILEGES;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表