[已解决]ubuntu server 11.04 64位编译mysql 5.5.12出错。

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
堕落的人生
帖子: 9
注册时间: 2009-03-12 14:16

[已解决]ubuntu server 11.04 64位编译mysql 5.5.12出错。

#1

帖子 堕落的人生 » 2011-06-01 0:04

groupadd mysql
useradd -g mysql -s /sbin/nologin -M mysql
tar zxvf mysql-5.5.12.tar.gz
cd mysql-5.5.12/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=system -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1

make && make install
cp support-files/my-medium.cnf /etc/my.cnf
chown -R mysql.mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
chown -R root.root /usr/local/mysql/
chown -R mysql.mysql /usr/local/mysql/data/
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
sysv-rc-conf mysqld on
sed -i "s#basedir=#basedir=/usr/local/mysql#g" /etc/init.d/mysqld
service mysqld start

上面是编译的过程,但是mysql根本启动不了。
一直报错:
The server quit without updating PID file (/var/lib/mysql/ubuntu.pid).

后使用mysqld_safe进行起动,发现错误:
110601 00:00:12 mysqld_safe Logging to '/var/log/mysql/error.log'.
touch: 无法创建"/var/log/mysql/error.log": 没有那个文件或目录
chown: 无法访问"/var/log/mysql/error.log": 没有那个文件或目录
110601 00:00:12 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/local/mysql/bin/mysqld_safe: 739: cannot create /var/log/mysql/error.log: Directory nonexistent
eval: 1: cannot create /var/log/mysql/error.log: Directory nonexistent
110601 00:00:12 mysqld_safe mysqld from pid file /var/lib/mysql/ubuntu.pid ended
/usr/local/mysql/bin/mysqld_safe: 783: cannot create /var/log/mysql/error.log: Directory nonexistent

后发现/var/log/mysql目录无法在编译的时候自动建立,我手工建立后,启动出错:
110601 00:01:00 mysqld_safe Logging to '/var/log/mysql/error.log'.
110601 00:01:00 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110601 00:01:01 mysqld_safe mysqld from pid file /var/lib/mysql/ubuntu.pid ended

然后仔细查看error.log文件,出现如下内容:
110601 00:01:00 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110601 0:01:01 [ERROR] Can't find messagefile '/usr/share/errmsg.sys'
110601 0:01:01 [Warning] Can't create test file /var/lib/mysql/ubuntu.lower-test
110601 0:01:01 [Warning] Can't create test file /var/lib/mysql/ubuntu.lower-test
/usr/local/mysql/bin/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 2)
110601 0:01:01 [ERROR] Aborting

110601 0:01:01 [Note]
110601 00:01:01 mysqld_safe mysqld from pid file /var/lib/mysql/ubuntu.pid ended


现在不知道如何解决了,我都换了两个服务器环境进行编译了,对了,我在之前还进行过以下操作:
apt-get update
apt-get autoremove -y
apt-get -fy install
apt-get install -y build-essential gcc g++ make
for packages in build-essential gcc g++ make automake autoconf re2c wget cron bzip2 libzip-dev libc6-dev file rcconf sysv-rc-conf flex vim nano bison m4 gawk less make cpp binutils diffutils unzip tar bzip2 libbz2-dev unrar p7zip libncurses5-dev libncurses5 libncurses5-dev libncurses5-dev libtool libevent-dev libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlibc openssl libsasl2-dev libxml2 libxml2-dev libltdl3-dev libltdl-dev libmcrypt-dev libmysqlclient15-dev zlib1g zlib1g-dev libbz2-1.0 libbz2-dev libglib2.0-0 libglib2.0-dev libpng3 libfreetype6 libfreetype6-dev libjpeg62 libjpeg62-dev libjpeg-dev libpng-dev libpng12-0 libpng12-dev curl libcurl3 libmhash2 libmhash-dev libpq-dev libpq5 gettext libncurses5-dev libcurl4-gnutls-dev libjpeg-dev libpng12-dev libxml2-dev zlib1g-dev libfreetype6 libfreetype6-dev libssl-dev libcurl3 libcurl4-openssl-dev libcurl4-gnutls-dev mcrypt;
do apt-get install -y $packages --force-yes;apt-get -fy install;apt-get -y autoremove; done



总算解决了,坛里子的高手都喝醉了,一天都没有一个人回贴。
上次由 堕落的人生 在 2011-06-01 14:13,总共编辑 1 次。
堕落的人生
帖子: 9
注册时间: 2009-03-12 14:16

Re: ubuntu server 11.04 64位编译mysql 5.5.12出错。

#2

帖子 堕落的人生 » 2011-06-01 0:05

这些编译代码在redhat中一点问题都没有

是不是因为系统是64位而造成的原因呢?
堕落的人生
帖子: 9
注册时间: 2009-03-12 14:16

Re: ubuntu server 11.04 64位编译mysql 5.5.12出错。

#3

帖子 堕落的人生 » 2011-06-01 9:19

现在又进行了如下操作:
mkdir /var/lib/mysql
chown -R mysql.mysql /var/lib/mysql

然后再运行mysqld_safe --user=mysql &

发现还是错误,立马进入/var/lib/mysql进行查看,发现文件夹里面的文件,不是lib文件,而是mysql数据库
发现问题,立马在mysqld_safe后面加上--basedir和--datadir目录,结果可以运行,而且一切正常

后修改mysql服务启动文件,修改basedir和datadir,结果启动发现sock出错。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

目前继续排错中。。。。

一到公司运行
/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql &
发现又出现错误了,NND
堕落的人生
帖子: 9
注册时间: 2009-03-12 14:16

Re: ubuntu server 11.04 64位编译mysql 5.5.12出错。

#4

帖子 堕落的人生 » 2011-06-01 10:50

重启之后,使用
/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql &
则能正常启动

110601 10:36:25 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/
110601 10:36:25 InnoDB: The InnoDB memory heap is disabled
110601 10:36:25 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110601 10:36:25 InnoDB: Compressed tables use zlib 1.2.3
110601 10:36:25 InnoDB: Initializing buffer pool, size = 128.0M
110601 10:36:25 InnoDB: Completed initialization of buffer pool
110601 10:36:25 InnoDB: highest supported file format is Barracuda.
110601 10:36:25 InnoDB: Waiting for the background threads to start
110601 10:36:26 InnoDB: 1.1.6 started; log sequence number 1595675
110601 10:36:26 [Note] Event Scheduler: Loaded 0 events
110601 10:36:26 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.12-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Source distribution

而且在使用过程中发现,mysql.server文件中
执行到
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
时,$basedir 会被修改成 /usr

有没有高手进来帮帮忙啊。我分析的头都大了。尤其是使用mysql.server
堕落的人生
帖子: 9
注册时间: 2009-03-12 14:16

Re: [已解决]ubuntu server 11.04 64位编译mysql 5.5.12出错。

#5

帖子 堕落的人生 » 2011-06-01 14:19

哦,解决了,NND,mysql还是自动安装的好,编译还真有点麻烦
Andyluou
帖子: 4
注册时间: 2013-12-14 16:44
系统: Ubuntu13.10

Re: [已解决]ubuntu server 11.04 64位编译mysql 5.5.12出错。

#6

帖子 Andyluou » 2014-01-25 10:36

请问您就是卸载后重新自动安装解决的吗?我也是遇到您以前的问题,不知到如何解决。
回复