mysql5.5.8编译安装_Mysql应用linux下mysql 5.5.8 源码编译安装

《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 源码编译安装.

系统: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 后,数据库服务就启动正常了

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编译参数的办法

编程之家PHP培训学院每天发布《MysqL应用linux下MysqL 5.5.8 源码编译安装》等实战技能,PHP、MysqL、LINUX、APP、JS,CSS全面培养人才。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Linux安装MySQL时,默认情况下只允许本地主机(localhost)连接到MySQL服务器。要允许第三方工具连接到MySQL服务器,您需要进行以下步骤: 1. 编辑MySQL配置文件:打开终端并使用文本编辑器(如vi或nano)打开MySQL配置文件。在大多数Linux发行版上,该文件位于`/etc/mysql/mysql.conf.d/mysqld.cnf`或`/etc/mysql/my.cnf`。 ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 2. 找到`bind-address`行,并将其注释掉或更改为服务器的IP地址,以允许从任何IP地址连接。如果您希望允许来自任何IP地址的连接,请将其更改为以下内容: ``` bind-address = 0.0.0.0 ``` 3. 保存并关闭文件。 4. 重新启动MySQL服务以使更改生效: ``` sudo systemctl restart mysql ``` 5. 授予远程连接的用户权限:要允许远程连接到MySQL服务器的用户,请确保在MySQL中具有适当的用户帐户和权限。您可以使用以下命令登录到MySQL控制台: ``` mysql -u root -p ``` 6. 在MySQL控制台中,创建或修改用户,并为其授予适当的权限。例如,要创建一个名为`remote_user`的新用户,并允许从任何主机连接,请使用以下命令: ``` CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 确保将`password`替换为您希望为用户设置的实际密码。 完成以上步骤后,您应该能够使用第三方工具连接到您的MySQL服务器。请确保仅允许受信任的主机或IP地址连接到MySQL,并使用安全的密码策略来保护您的数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值