Linux下MySQL 5.5.8 源码编译安装记录分享

系统:Ubuntu 10.10
mysql源码文件:mysql-5.5.8.tar.gz
安装所需工具:cmake, GNU make, gcc, Perl, libncurses5-dev, bison(可选), chkconfig
注:
1.官方2010-11-18的源码有几处bug,在编译之前参照官方的说明,进行了手动修改。

官方说明链接:http://lists.mysql.com/commits/126782
2.官方5.5版本参考手册:http://dev.mysql.com/doc/
汗了一下,3392页的参考手册!
=>工具安装:
1. cmake
----没有自己编译安装cmake
----shell:~$ sudo apt-get install cmake
----版本:2.8.2
2. GNU make
----Ubuntu自带
----版本:3.81
3.GCC
----Ubuntu自带
----版本:4.4.5(官方文档:必须3.2以上)
4.Perl
----Ubuntu自带
----版本:5.10.1
5.libncurses5-dev (ncurses-devel)
----若差了这个包,在cmake的时候会报错。
----Debian/Ubuntu上的包名是libncurses5-dev,RedHat和其他版本对应的是ncurses-devel
----shell:~$ sudo apt-get install libncurses5-dev
----报错信息
------------------www.linuxidc.com---------------
-- MySQL 5.5.8
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (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:126 (FIND_CURSES)
cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:256 (MYSQL_CHECK_READLINE)

-- Configuring incomplete, errors occurred!
---------------------------------
6. bison
----shell:~$ sudo apt-get install bison
----可选。没有这个工具,在make的时候报出警告。
----警告记录:
---------------------------------

Warning: Bison executables not found in PATH
---------------------------------
7.chkconfig
----后面配置mysql服务自启动的时候需要。
----shell:~$ sudo apt-get install chkconfig
=>mysql安装:
1.解压源代码文件
----shell定位到源代码文件所在目录
----解压
shell:~$ tar zxvf mysql-5.5.8.tar.gz
2.cmake操作
----shell定位到解压出的源代码文件夹目录(文件夹:mysql-5.5.8)
----cmake执行:
---------------------------------
shell:~$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/home/system_username/Programming/mysql/mysqldata
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8-general_ci
-DMYSQL_USER=mysql
注:没有换行。官方文档上,cmake 命令后面加个点不懂什么意思。在这里加上命令执行不了
---------------------------------
源代码配置选项说明:
//mysql安装的主目录,5.5.8版本默认为/usr/local/mysql,所以可以不添加
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

//mysql数据保存的路径,自定义
-DMYSQL_DATADIR=/home/system_username/mysql/mysqldata

//mysql配置文件地址------The default my.cnf option file directory
-DSYSCONFDIR=/etc

//Compile storage engine xxx statically into server
/*Storage engines are built as plugins. You can build a plugin as a static module (compiled into the server)
*or a dynamic module (built as a dynamic library that must be installed into the server using the INSTALL
*PLUGIN statement or the --plugin-load option before it can be used). Some plugins might not support static
*or dynamic building.
*/
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1

//Unix socket file
/*
*The Unix socket file path on which the server listens for socket connections. This must be an absolute path
*name. The default is /tmp/mysql.sock
*/
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

//数据库服务器TCP/IP连接的监听端口,默认为3306
-DMYSQL_TCP_PORT=3306

//Whether to enable LOCAL capability in the client library for LOAD DATA INFILE
//默认为关闭,这里开启
-DENABLED_LOCAL_INFILE=1

//数据库编码设置
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8-general_ci
3.编译和安装
----shell定位到源代码文件夹目录
----执行:(编译用了大概20分钟)
shell:~$ make
shell:~$ make install

4.后续配置
----进入mysql安装目录下的脚本目录
shell:~$ cd /usr/local/mysql/scripts
----利用mysql_install_db脚本生成新的MySQL 授权表
./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/system_username/Programming/mysql/mysqldata
--user=mysql
----进入mysql安装目录下的支持文件目录
shell:~$ cd /usr/local/mysql/support-files
----复制mysql配置文件
shell:~$ sudo cp my-medium.cnf /etc/my.cnf

----复制服务文件并修改
shell:~$ sudo cp mysql.server mysqld
----修改mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
mv mysqld /etc/init.d/mysqld
----启动服务
shell:~$ service mysqld start
----关闭服务
shell:~$ service mysqld stop
---------------------------------
service命令:
1. 用于管理Linux系统中服务的命令
2. 作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作
3. 上述操作后,mysqld服务文件对应mysql.server文件
---------------------------------
----添加服务到自启动项
shell:~$ sudo chkconfig --level 3 mysqld on

----设置软连接使mysql, mysqldump, mysqladmin这三个命令能在shell中直接运行
shell:~$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
shell:~$ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin
shell:~$ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
---------------------------------
=>mysql数据库中文乱码解决 :
1. 乱码分析
----从终端shell进入mysql
shell:~$ mysql
............
............
mysql> show variables like '%character%'
----得到以下数据库编码信息表:
+----------------------------------- +-------------------------------------------+
| Variable_name | Value |
+------------------------------------+-------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+------------------------------------ +-------------------------------------------+
可以看出character_set_database ,character_set_server 的编码还是默认的latin1。
不知道为什么,之前DEFAULT_CHARSET设置成为utf8的,好像没起作用。查看官方文档
发现,character_set_database不支持配置文件(/etc/my.cnf)变量设置,
但是character_set_server 支持配置文件变量设置。

2. 解决办法
----打开配置文件
shell:~$ sudo gedit /etc/my.cnf
然后在[mysqld]配置选项下添加
character-set-server = utf8
----然后进入mysql
执行:
mysql> show variables like '%character%'
结果:character_set_database ,character_set_server两项都变为utf8了
----测试:
往数据库表中插入中文字段,中文就正常显示了。

注:1.用5.1版本的时候如下方法是可以解决中文编码问题的
----在配置文件[mysqld]和[client]节下分别添加: default-character-set = utf8
2.不知到是不是手动编译的原因,在5.5.8中配置文件中用上述方法会造成数据库服务无法启动。
----错误日志如下:( datadir/username.err为错误日志文件)
----------------------------------------------------
mysqld_safe mysqld from pid file /home/cyberwym/Programming/mysql/mysqldata/cyberwym.pid ended
...........
...........
[ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'
[ERROR] Aborting
----------------------------------------------------
----这样会造成pid文件(datadir/username.pid)无法更新
----在配置文件[mysqld]和[client]节下分别去掉: default-character-set = utf8 后,数据库服务就启动正常了

(0)

相关推荐

  • centos 7安装mysql5.5的方法

    首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤. #列出所有被安装的rpm package rpm -qa | grep mariadb #卸载 rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64 错误:依赖检测失败: libmysqlclient.so.18()(64bit) 被 (已安裝)

  • Win7系统安装MySQL5.5.21图解教程

    大家都知道MySQL是一款中.小型关系型数据库管理系统,很具有实用性,对于我们学习很多技术都有帮助,前几天我分别装了SQL Server 2008和Oracle 10g数据库,也用了JDBC去连接他们,都没有出现乱码. 昨天看同学用java连接MySQL数据库的时候,出现了乱码,这是我不知道的,我马上上网去查JDBC连接MySQL的操作,发现在用JDBC方式连接MySQL数据库的时候要传递一个能解决乱码的参数,才能将不是乱码的数据插入到数据库中.而这都是因为在安装数据库的时候,没有选择正确的编码

  • MySQL5.5.21安装配置教程(win7)

    Win7安装mysql的具体过程,我的版本是5.5.21 以下是我的安装步骤: 1.首先单击MySQL5.5.21的安装文件,出现该数据库的安装向导界面,单击"next"继续安装,如图所示: 2.在打开的窗口中,选择接受安装协议,单击"next"继续安装,如图所示: 3.在出现选择安装类型的窗口中,有"typical(默认)"."Complete(完全)"."Custom(用户自定义)"三个选项,我们选择&

  • Windows下安装MySQL5.5.19图文教程

    本文详细介绍了Windows下安装MySQL5.5.19的全过程,希望对初学者有帮助. 下载mysql-5.5.19-win32.msi安装文件,双击运行,出现如下界面. mysql安装向导启动,按"Next"继续 在 I accept the terms in the License Agreement(我接受许可协议中的条款)前面打上勾.按"Next"继续. 选择安装类型,有"Typical(默认)"."Custom(自定义)&qu

  • mysql 5.5 安装配置方法图文教程

    回忆一下mysql 5.5 安装配置方法,整理mysql 5.5 安装配置教程笔记,分享给大家. MySQL下载地址:http://dev.mysql.com/downloads/installer/ 1.首先进入的是安装引导界面 2.然后进入的是类型选择界面,这里有3个类型:Typical(典型).Complete(完全).Custom(自定义).这里建议 选择"自定义"(Custom)安装,这样可以自定义选择MySQL的安装目录,然后点"Next"下一步,出现自

  • Windows XP系统安装MySQL5.5.28图解教程

    MySQL数据库的安装一共分为两个部分:数据库的安装和数据库的配置. 一.MySQL数据库的安装 1.双击下载的MySQL安装文件,如图所示: 2.弹出MySQL5.5安装向导对话框,单击Next按钮,如图所示: 3.打开End-User License Agreement对话框,选中I accept the terms in the License Agreement复选框,单击Next按钮,如图所示: 4.打开Choose Setup Type对话框,在其中列出了3中安装类型,分别是Typi

  • mysql 5.5 安装配置简单教程

    下面的是MySQL安装的过程,用的可执行文件安装的,详细说明了一下! 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe" 2.mysql安装向导启动,按"Next"继续 选择安装类型,有"Typical(默认)"."Complete(完全)"."Custom(用户自定义)"三个选项,我们选择"Custom",有更多的选项,

  • MySQL安装详解图文版(V5.5 For Windows)

    最近在做一个较大并发的项目,尝试了InnoDB的MySQL5.5,30M不到的安装文件,表现丝毫不逊于庞大的Oracle或MSSqlServer.开源.不迷信Linux,相信MySQL在Windows中会得到越来越广泛的应用.整理了之前的一篇文章,希望给入门者有所帮助. 安装环境:Windows Server 2003 [32bit NTFS]版本信息:MySQL 5.5.15 [下载地址:http://dev.mysql.com/downloads/]参考文献:http://dev.mysql

  • CentOS 5.5下安装MySQL 5.5全过程分享

    打开终端 切换到根目录 [shell@localhost ~]# su -安装Mysql5.5之前先卸载CentOS自带的Mysql5.0. [root@localhost ~]# yum remove mysql 安装cmake 下载cmake源码包cmake-2.8.5.tar.gz [root@localhost ~]# wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz编译安装[root@localhost]# tar xzvf

  • mysql-5.5.28源码安装过程中错误总结

    介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum install cmake -y) 复制代码 代码如下: ../bootstrap Error when bootstrapping CMake: Cannot find appropriate C compiler on this system. Please specify one using

随机推荐