下面是ubuntu10.10下源码安装mysql-5.5.19.tar.gz的笔记,遇到的一些问题都在网上找到了答案(网络雷锋的力量真是很强大的哦!);记录下安装过程,留作备忘!
mysql的新版本都是用cmake来编译安装的,所以第一步应该是把cmake装上,为了安装过程中少些警告,把一些必要的包也一并装上;
$ sudo apt-get install cmake
$ sudo apt-get install libncurses5-dev
$ sudo apt-get install bison
$ sudo apt-get install g++ (没有这一步的话,cmake时会报错---CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.)
#cd /usr/local
#tar -zxvf /home/chy/Downloads/mysql-5.5.19.tar.gz
#cd mysql-5.5.19
#cmake .
#make
大约进行到83%时报如下错误:
In function ‘void handle_connections_sockets()’:
error: invalid conversion from ‘size_socket*’ to ‘socklen_t*’
error: initializing argument 3 of ‘int accept(int, sockaddr*, socklen_t*)’
error: invalid conversion from ‘int*’ to ‘socklen_t*’
error: initializingargument 3 of ‘int getsockname(int, sockaddr*, socklen_t*)’
make[2]: *** [sql/CMakeFiles/sql.dir/mysqld.cc.o] 错误 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] 错误 2
make: *** [all] 错误 2
这个是gcc的版本问题,
使用apt-get mysql-server后然后remove掉mysql-server
#apt-get install mysql-server
#apt-get remove mysql-server
#apt-get autoremove
然后重新解压安装,上述错误没有。
#make install
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
#./mysqld_safe &
查看mysql服务有没有启动
#ps -A | grep mysql
如果看到mysql的输出,说明服务已启动
#./mysqladmin -u root password 'xxxxxx'
#./mysql -u root -pxxxxxx
启动mysql即#./mysqld_safe &的时候会出现:
110322 09:40:33 mysqld_safe Logging to '/var/lib/mysql/loongson.err'.
110322 09:40:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110322 09:40:33 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
查看loongson.err,记录错误如下:
Can't find messagefile '/usr/share/mysql/english/ errmsg.sys'
287 ^G/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found
这个问题,找网上的说法
An old style --language value with language specific part detected:/usr/local/mysql/share/english/
发现真正的原因在:
在/etc/mysql/my.cnf中
basedir = /usr
datadir = /var/lib/mysql
这两个配置上
因为这两个配置是错误的,应配置如下:
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
然后启动就没有问题。
但是估计上面那个语言配置也是正确,但basedir和data
经过以上的折腾后,mysql基本安装好了
#/usr/local/mysql/support-files/mysql.server [status|stop|start]设置环境变量如下:
#vi /etc/profile
在"umask 022”前添加如下内容:
export PATH=/usr/local/mysql/bin:$PATH
启动mysql
手动启动:
mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysqld_safe --user=mysql &