linux如何重新编译安装mysql_Linux下编译安装MySQL步骤和问题解决

Linux下编译安装MySQL步骤和问题解决

编译安装MySQL的步骤:

shell> groupadd mysql

shell> useradd -g mysql mysql

shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -

shell> cd mysql-VERSION

shell> ./configure --prefix=/usr/local/mysql

shell> make

shell> make install

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> cd /usr/local/mysql

shell> chown -R mysql .

shell> chgrp -R mysql .

shell> bin/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql var

shell> bin/mysqld_safe --user=mysql &

将mysql的执行路径添加到root用户的环境变量中:

shell> vi ~/.bash_profile

修改PATH变量:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/

让修改马上生效,可以执行如下命令:source ~/.bash_profile(或者. ~/.bash_profile)

问题解决:

(1)checking for termcap functions library... configure: error: No curses/termcap library found

解决方法: ./configure --with-named-curses-libs=/usr/lib/libncursesw.so.5 (但似乎编译时还是会报错?这时可以用apt-get install libncurses5-dev或yum -y install ncurses-devel)

(2)    ../depcomp: line 571: exec: g++: not found

make[1]: *** [my_new.o] 错误 127

make[1]: Leaving directory `/home/justme/software/mysql-5.1.30/mysys'

make: *** [all-recursive] 错误 1

这个问题原因是缺少g++编译器,解决方法是安装gcc-c++-4.1.2-33.i386.rpm套件。在安装过程中可能其还需要依赖套件libstdc++-devel-3.4.6-3.1.i386.rpm。所以解决途径为:

先安装libstdc++-devel-3.4.6-3.1.i386.rpm,再安装gcc-c++-4.1.2-33.i386.rpm

(3)     error: redeclaration of C++ built-in type

出现该问题的原因是重新安装gcc-c++后没有重新执行.configure命令。因此解决途径为:

重新执行 ./configure –prefix=/usr/local/mysql,再执行make

(4)    启动MySQL时报错:

[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

这个错误的原因是用mysql用户去启动,但是查看下var/mysql 下plugin表的所有者是root,故没有权限去执行。执行chown -R mysql var可以解决问题。

(5) 用SQL语句查询某些表时报错:ERROR 1273 (HY000): Unknown collation 'gbk_chinese_ci' in table 'data_plus' definition,运行set names gbk 或 SET character_set_client = gbk 时提示:ERROR 1115 (42000): Unknown character set: 'gbk'

原因在于配置和编译时没有指定GBK字符符(默认安装时没有),用下面这二个命令来重新编译:

./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --with-extra-charsets=all --with-charset=gbk --with-collation=gbk_chinese_ci --with-big-tables --enable-thread-safe-client --enable-profiling --enable-community-features --enable-local-infile --with-fast-mutexes

make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes install clean

======================================

ubuntu下编译安装MYSQL(其实如果对性能和某些参数无特殊配置,可以直接下载二进制的发布版,更易安装,详见本文最后)

操作系统:ubuntu8.04  MySql版本:5.0.22

需要安装的编译器:

1:遇到 checking for C compiler default output file name... configure: error: C compiler cannot create executables

See `config.log' for more details.

这个问题 是因为没有安装G++造成的,#sudo apt-get install g++

利用这个命令可以下载并安装

如果在下载过程中出现   无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_2.6.24-21.42_i386.deb 404 Not Found

可以访问这里地址下载安装 libc-dev_2.6.24

之后再次执行 #sudo apt-get install g++ 就OK啦

地址:http://hi.baidu.com/robin_l/blog/item /3087ffa1875a2d83471064bf.html

2:在编译Mysql时

./configure --prefix=DIR

,如果出现了以下错误:

......

checking for tgetent in -ltermcap... no

checking for termcap functions library... configure: error: No curses/termcap library found

说明 curses/termcap 库没有安装

apt-cache search curses | grep lib

安装 libncurses5-dev ,然后重新运行配置

apt-get install libncurses5-dev

需要安装的编译器

sudo apt-get install g++

sudo apt-cache search curses | grep lib

sudo apt-get install libncurses5-dev

编译及配置步骤

1.sudo groupadd mysql

#添加 mysql 用户组

2.sudo useradd -g mysql mysql

#添加 mysql 用户

3.sudo gunzip < /home/flying/SoftWare/mysql-5.0.22.tar.gz | tar -xvf -

#解压缩源文件

4.sudo ./configure --prefix=/usr/local/mysql(这里只是简单的编译,如果需要更多的功能请在终端输入:sudo ./configure --help)

5.sudo make

#make

6.sudo make install

#make install

7.sudo cp support-files/my-medium.cnf /etc/my.cnf

#将 mysql 配置文件复制到系统的配置文件夹中

8.cd /usr/local/mysql/

#进入 MySql 安装后的目录

9.sudo bin/mysql_install_db --user=mysql

#数据库初始化

10.sudo chown -R root .

#给root用户赋予可读权限

11.sudo chown -R mysql var

#使/usr/local/mysql/var/目录下所有文件为用户mysql所有

12.sudo chgrp -R mysql .

#使/usr/local/mysql/目录下所有文件为用户组mysql所有

13.sudo bin/mysqld_safe --user=mysql &

#启动 MySql

14.sudo netstat -tap | grep mysql

#从服务启动 MySql 查看服务状态

15.sudo apt-get install mysql-admin

#安装 MySql 管理软件

16.sudo /etc/init.d/mysql start

#启动 MySql

17.设置自动启动

1、sudo ln -s /usr/local/share/mysql/mysql.server /etc/init.d/mysql

2、sudo chmod +x mysql

3、sudo sysv-rc-conf

(运行服务管理工具,没有sysv-rc-conf的可以马上安装一个,sudo apt-get install sysv-rc-conf,关于sysc-rc-conf的使用可以参考<Ubuntu7.04下使用sysv-rc-conf管理服务>)

18.创建连接(添加执行程序的软链接,这只是为了方便,喜欢用完整路径的可以不做)

ln -s /usr/local/bin/mysql /usr/bin/

ln -s /usr/local/bin/mysqlmanager /usr/bin/

ln -s /usr/local/bin/mysqld_safe /usr/bin/

ln -s /usr/local/bin/mysql_config /usr/bin/

ln -s /usr/local/share/mysql/mysql.server /usr/bin/

==============================

安装2进制版本的mysql

二进制版本的mysql是已经编译好的,无需 configure ,make  make install 等安装步骤,只需下载后解压再配置一 下即可使用,卸载也方便,直接删除即可;

现在以mysql-5.1.47-linux-i686-glibc23.tar.gz 版本做介绍 :

1. # chmod 755  mysql-5.1.47-linux-i686-glibc23.tar.gz    //改变该文件为可执行权限

2. # tar -xvzf  mysql-5.1.47-linux-i686-glibc23.tar.gz     //将解压后生成的目录,复制到/usr/local/下并改名为mysql

3. # groupadd mysql    // 建立mysql组

# useradd mysql -g mysql     //建立mysql用户并且加入到mysql组中

# cd /usr/local

# ln -s  mysql-5.1.47-linux-i686-glibc23 mysql

4. # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

在 support-files目录下有4个模版文件,我们选择其中一个座位Mysql的配置文件,覆盖/etc/my.cnf(系统默认的配置,其中设置了性能参数和Mysql的一些路径参数)

5. # cd /usr/local/mysql // 进入mysql目录

# ./scripts/mysql_install_db --user=mysql     //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限

6. # chown -R mysql data       //设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,mysql_install_db时产生。

7. # chown -R mysql data/.     //设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件

8. # chgrp -R mysql .    //设定mysql组能够访问/usr/local/mysql

9. # /usr/local/mysql/bin/mysqld_safe --user=mysql &

10.# cd /usr/local/mysql/bin  //进入 bin目录

11.# mysql  //运行mysq命令

如果没有没有启动 或出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'

解决方法: #cd /usr/local/mysql/support-files //进入该目录

#./mysql.server start  //启动即可 既可在生成 /tmp/mysql.sock

如果 /tmp/mysql.sock 无该文件存在,且mysql是处于 开启的状态 ?

解决方法: #netstat -an | grep 3306   //查看 3306端口

#ps -ef | grep mysql  // 查找 mysql 进程

# kill -9  进程号    //强制删除mysql的进程号

#./mysql.server start   //启动即可 既可在生成 /tmp/mysql.sock

如果在任意路径下如数mysql命令得到的无该命令咋办呢?

解决方法:修改 /etc/profile 文件   在文件中加入

PATH=$PATH:/usr/local/mysql/bin/

export PATH  (保存即可退出执行 source /etc/profile)

以上操作完既可以 在任意目录执行# mysql 命令

如果想执行 service mysql start or restart stop 命令咋办的? 在不能老#./mysql.server start

解决方法: 将 mysql.server  复制一份到 /etc/rc.d/init.d 下并改名 mysql 或建个连接文件

假设当前目录为 /etc/rc.d/init.d

如: #cp  /usr/local/mysql/support-files/mysql.server  mysql (复制)

或 : #ln -s /usr/local/mysql/support-files/mysql.server  mysql (建立连接文件)

完成以上操作即可  执行 service mysql start (or restart stop)

用如下命令修改MYSQL密码

# /usr/local/mysql/bin/mysqladmin -u root password yourpassword     //默认安装密码为空,为了安全你必须马上修改

# chmod 700 /etc/init.d/mysql

# chkconfig --add mysql

# chkconfig --level 345 mysql on     //copy编译目录的一个脚本设置使mysql每次启动都能自动运行

# service mysql start

# netstat -atln

//启动mysql服务

//查看3306端口是否打开。要注意在防火墙中开放该端口。

可以用telnet  localhost  3306来测试一下,如果有反映,那就表明安装成功了

远程访问

local : grant all on *.* to 'root'@'192.168.0.1' identified by 'dukeping';remote : mysql -h192.168.0.99 -uroot -pdukeping

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值