《Mysql应用linux下mysql 5.5.8 源码编译安装》要点: 本文介绍了Mysql应用linux下mysql 5.5.8 源码编译安装,希望对您有用。如果有疑问,可以联系我们。
导读:本节内容:linux下mysql 5.5.8 源码编译安装.系统:ubuntu 10.10 mysql源码文件:mysql-5.5.8.tar.gz 安装所需工具:cmake,gnu ma...
本节内容: linux下mysql 5.5.8 源码编译安装.MYSQL必读
系统:ubuntu 10.10 mysql源码文件:mysql-5.5.8.tar.gz 安装所需工具:cmake,gnu make,gcc,perl,libncurses5-dev,bison(可选),chkconfig 注: 1.官方2010-11-18的源码有几处bug,在编译之前参照官方的说明,进行了手动修改.MYSQL必读
官方说明链接: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,MYSQL必读
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)MYSQL必读
-- configuring incomplete,errors occurred! --------------------------------- 6. bison ----shell:~$ sudo apt-get install bison ----可选.没有这个工具,在make的时候报出警告. ----警告记录: ---------------------------------MYSQL必读
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/mysqlMYSQL必读
//mysql数据保存的路径,自定义 -dmysql_datadir=/home/system_username/mysql/mysqldataMYSQL必读
//mysql配置文件地址------the default my.cnf option file directory -dsysconfdir=/etcMYSQL必读
//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=1MYSQL必读
//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.sockMYSQL必读
//数据库服务器tcp/ip连接的监听端口,默认为3306 -dmysql_tcp_port=3306MYSQL必读
//whether to enable local capability in the client library for load data infile //默认为关闭,这里开启 -denabled_local_infile=1MYSQL必读
//数据库编码设置 -dextra_charsets=all -ddefault_charset=utf8 -ddefault_collation=utf8-general_ci 3.编译和安装 ----shell定位到源代码文件夹目录 ----执行:(编译用了大概20分钟) shell:~$ make shell:~$ make installMYSQL必读
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.cnfMYSQL必读
----复制服务文件并修改 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 onMYSQL必读
----设置软连接使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 支持配置文件变量设置.MYSQL必读
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了 ----测试: 往数据库表中插入中文字段,中文就正常显示了.MYSQL必读
注: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 后,数据库服务就启动正常了
CentOS 6.3下源码编译安装MySQL 5.6 CentOS 6.5编译安装Percona 5.6.15(步骤) centos6.4编译安装mysql5.5及Sphinx引擎的办法详解 mysql编译安装及多实例安装的办法分享 fedroa中编译安装mysql5.5的实例参考 安装mysql5.5时只编译客户端 新编译的MySQL无法通过service启动的解决办法 查看已安装的mysql编译参数的办法MYSQL必读 编程之家PHP培训学院每天发布《Mysql应用linux下mysql 5.5.8 源码编译安装》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|