ubuntu 环境下调试mysql源码_Ubuntu上mysql源码安装及配置【转】

安装环境:Ubuntu 10.04 + mysql 5.1

1.安装必要的支持库

源码编译安装 mysql 需要以下库的支持:g++、libncurses5-dev

所以先来安装这两个库

# apt-get install g++ libncurses5-dev

(#apt-get install build-essential libncurses5-dev)

等待上面安装完毕,然后就可以编译 mysql 源码了。

2.安装

mysql

1> 首先建立 mysql 用户

# groupadd mysql

# useradd -g mysql mysql

2> 编译安装

比如下载后的 mysql 源码文件为 /root/download/mysql-5.1.48.tar.gz,则

# cd /root/download

# tar -zxvf mysql-5.1.48.tar.gz

# cd mysql-5.1.48

# ./configure –prefix=/usr/local/mysql –with-charset=utf8

–with-collation=utf8_general_ci

–with-extra-charsets=latin1

# make

# make install

# cp support-files/my-medium.cnf /etc/my.cnf

3> 初始化数据库并修改目录权限

# cd /usr/local/mysql

# bin/mysql_install_db --user=mysql

# chown -R root .

# chown -R mysql /usr/local/mysql/var

# chgrp -R mysql .

4> 启动 mysql 服务

# bin/mysqld_safe --user=mysql &

这里可能出现

启动错误1:

mysqld_safe Starting mysqld daemon with

databases from /usr/local/mysql/var

^G/usr/local/mysql/libexec/mysqld: Can't find file:

'./mysql/plugin.frm' (errno:

13)

[ERROR] Can't open the mysql.plugin table.

Please run mysql_upgrade to create it.

如果出现这个错误,执行

/usr/local/mysql/bin/perror 13,则会显示错误原因“OS error code 13:

Permission

denied”,应该是文件权限问题,mysql 无法读取 plugin.frm 文件,这个文件存在于

/usr/local/mysql/var/mysql 目录下,进入此目录发现所有的文件所有者都是

root:root,所以mysql 没有权限读

取,于是执行命令:

# cd /usr/local/mysql/var/

# chown -R mysql:mysql mysql

此时再执行 “/usr/local/mysql/bin/mysqld_safe &”

命令应该可以启动 mysql 服务了。

启动错误2:$ sudo bin/mysqld_safe --user=mysql

&

[2] 4168

[1] Exit

2 bin/mysqld_safe --user=mysql

$ 110301 09:02:36 mysqld_safe Logging to

'/var/lib/mysql/fei-desktop.err'.

touch: cannot

touch`/var/lib/mysql/fei-desktop.err': No such

file or directorychown: cannot

access`/var/lib/mysql/fei-desktop.err':No such

file or directory110301 09:02:37 mysqld_safe

Starting mysqld daemon with databases from /var/lib/mysql

bin/mysqld_safe: 568: cannot create

/var/lib/mysql/fei-desktop.err‍:

‍Directory nonexistent

eval: 1: cannot create /var/lib/mysql/fei-desktop.err: Directory

nonexistent

110301 09:02:37 mysqld_safe mysqld from pid file

/var/run/mysqld/mysqld.pid ended

bin/mysqld_safe: 612: cannot create /var/lib/mysql/fei-desktop.err:

Directory nonexistent

从错误信息看出:1./var/lib/mysql/目录不存在

‍解决方法:

sudo mkdir

/var/lib/mysql //创建目录

chown -R mysql:mysql /var/lib/mysql //修改目录的用户和组

5> 将 mysql 注册成一个服务

# cp /usr/local/mysql/share/mysql/mysql.server

/etc/init.d/mysqld

然后,可以执行/etc/init.d/mysqld start(stop\status) 启动(停止、查看)服务

ps:

常见错误1:

如果当启动mysql时出现以下错误

Starting MySQLCouldn't find MySQL manager

(/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)

failed!

则可能是因为存在两个my.cnf文件,/etc/my.cnf和/etc/mysql/my.cnf,这是把后者改个名字(如my.cnf.old)就

可以了。

常见错误2:

在make的过程中,出现以下错误:

redeclaration of C++ built-in type `bool'

执行:

make clean

make distclean

重新执行configure 和 make

(这个错误一般是在没有安装g++的情况下,执行了make。在安装g++后,再次执行make时出现)

常见错误3:

在连接服务器时:ERROR 2002 (HY000): Can't connect to local MySQL server

through socket '/tmp/mysql.sock' (2)

原因1:服务器没有启动

/etc/init.d/mysqld status //查看服务状态

如果,没有服务启动,则启动服务;

/etc/init.d/mysqld start

原因2:没有找到mysql.sock文件,注意查看mysql.sock是否存在,查看用户mysql是否具有mysql.sock所在路径的写权限。

PS:

libncurses5和Ncurses:

软件包: libncurses5 中,包括运行那些使用ncurses编译的程序所必须的共享库。

Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。

Ncurses是一个能提供基于文本终端窗口功能的动态库.

Ncurses可以:

1.只要您喜欢,您可以使用整个屏幕

2.创建和管理一个窗口

3.使用8种不同的彩色

4.为您的程序提供鼠标支持

5.使用键盘上的功能键

Ncurses可以在任何遵循ANSI/POSIX标准的UNIX系统上运行,除此之外,它还可以从系统数据库中检测终端的属性,

并且自动进行调整,提供一个不受终端约束的接口.因此,Ncurses可以在不同的系统平台和不同的终端上工作的非常好.mc工具集就是一个用

ncurses写的很好的例子,而且在终端上系统核心配置的界面同样是用ncurses编写的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值