mysql 5.5.15 源码包在linux5.5_x86_64 安装

首先在mysql 的官方网站下载安装所需要的源码包, 由于源码包的安装需要cmake 的支持,因此:

[root@mysqla ~]# uname -a

Linux mysqla.richinfo.cn 2.6.18-194.el5xen #1 SMP Tue Mar 16 22:01:26 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

[root@mysqla ~]# cd /soft/

[root@mysqla soft]# ll

total 28652

-rw-r--r-- 1 root root  5517977 Aug  7 12:01 cmake-2.8.5.tar.gz

-rw-r--r-- 1 root root 23774015 Aug  7 12:02 mysql-5.5.15.tar.gz

(1) cmake 的安装

[root@mysqla soft]# tar -xvf cmake-2.8.5.tar.gz

[root@mysqla cmake-2.8.5]# vim Readme.txt

从文档中获取以下安装步骤

$ ./bootstrap;

make;

make install

(2) mysql 的安装

A. 建立 mysql 用户 以及mysql

[root@mysqla cmake-2.8.5]# groupadd mysql

[root@mysqla cmake-2.8.5]# useradd -g mysql mysql

B. 创建mysql数据库的相关目录, 并且赋予权限

[root@mysqla cmake-2.8.5]# mkdir  /usr/local/mysql

[root@mysqla cmake-2.8.5]# mkdir /data/mysql -p

[root@mysqla cmake-2.8.5]# mkdir /etc/mysql

 

[root@mysqla cmake-2.8.5]# chown mysql.mysql /usr/local/mysql

[root@mysqla cmake-2.8.5]# chown mysql.mysql /etc/mysql

[root@mysqla cmake-2.8.5]# chown mysql.mysql /data/mysql –R

[root@mysqla etc]# chmod 755 /data/mysql -R

[root@mysqla etc]# chmod 755 /etc/mysql

[root@mysqla etc]# chmod 755 /usr/local/mysql

C.编译 并安装 mysql

Cmake 采用以下参数

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/mysql/data/  \

-DSYSCONFDIR=/etc/mysql/ \

-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=/etc/mysql/mysqld.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_USER=mysql

相关参数的 查询可以参考帮助文档:

[root@mysqla mysql-5.5.15]# cmake . -LH

-- MySQL 5.5.15

-- Configuring done

-- Generating done

-- Build files have been written to: /soft/mysql-5.5.15

-- Cache values

也可以 查看官档:

http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

 

  • -DSYSCONFDIR=dir_name

The default my.cnf option file directory.   // mysql my.cnf 存放路径

  • DMYSQL_UNIX_ADDR=file_name

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.

This value can be set at server startup with the --socket option.  //socket 的存放路径, 其文件用于服务器的监听和套接链接

################################################################

Cmake 时会出现如下警告信息:

CMake Warning:

  Manually-specified variables were not used by the project:

 MYSQL_USER

去掉 -DMYSQL_USER=mysql 参数

[root@mysqla mysql-5.5.15]# rm  CMakeCache.txt

rm: remove regular file `CMakeCache.txt'? y

继续编译 通过 

#############################################################################

 

如果出现一下错误:

cmake .

-- 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!

 

 

安装:

# yum -y install ncurses-devel

##############################################################################

 

Make

Make install

 

复制配置文件 my.cnf

[root@mysqla mysql]# cp /soft/mysql-5.5.15/support-files/my-medium.cnf /etc/mysql/my.cnf

使用chown chmod  更改 文件的权限与属组

 

配置开机自启动:

 

[root@mysqla mysql]# cp /soft/mysql-5.5.15/support-files/mysql.server /etc/init.d/mysql

[root@mysqla mysql]# chmod +x /etc/init.d/mysql

[root@mysqla mysql]# chkconfig  --add mysql

[root@mysqla mysql]# chkconfig mysql on

[root@mysqla mysql]# chkconfig --list | grep mysql

mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

[root@mysqla mysql]# /usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=/data/mysql/ --user=mysql

Installing MySQL system tables...

110807 16:25:41 [ERROR] Unknown collation: 'utf8-general_ci'

110807 16:25:41 [ERROR] Aborting

 

110807 16:25:41 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

由于在编译时采用了 错误的 DDEFAULT_COLLATION=utf8-general_ci(utf8_general_ci) 设置, 因此在my.cnf 使用了 character_set_server = utf8 初始化DB

但是在登录时,也出现了一下错误:

[root@mysqla mysql]# /usr/local/mysql/bin/mysql -uroot -p

Enter password:

/usr/local/mysql/bin/mysql: Collation 'utf8-general_ci' is not a compiled collation and is not specified in the '/usr/local/mysql/share/charsets/Index.xml' file

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

[root@mysqla mysql]#  /usr/local/mysql/bin/mysqladmin -u root password '123456'

/usr/local/mysql/bin/mysqladmin: Collation 'utf8-general_ci' is not a compiled collation and is not specified in the '/usr/local/mysql/share/charsets/Index.xml' file

 

 

[root@mysqla mysql]# vim /usr/local/mysql/share/charsets/Index.xml

 

 

[root@mysqla mysql]#  /usr/local/mysql/bin/mysqladmin -u root password '123456'

/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: NO)'

 

更改了/usr/local/mysql/share/charsets/Index.xml 的内容:

  Unicode

  UTF-8 Unicode

  utf-8

  "utf8_general_ci"     id="33">

   primary

   compiled

 

              id="83">

    binary

    compiled

 

更改为:

  Unicode

  UTF-8 Unicode

  utf-8

  "utf8-general_ci"     id="33">

   primary

   compiled

 

              id="83">

    binary

    compiled

 

查看官方文档:

 

  • -DDEFAULT_COLLATION=collation_name

The server collation. By default, MySQL uses latin1_swedish_ci. Use the SHOW COLLATION statement to determine which collations are available for each character set.

This value can be set at server startup with the --collation_server option.

个人理解: 每个字符集都有自己的默认 校验字符集,  对于每种字符集的数据库, mysql 均会采用指定的collation 方式, 排序就会用到此校验规则。

mysql> create table tt (name varchar(10)) character set utf8;

Query OK, 0 rows affected (0.02 sec)

 

mysql> insert into tt values('aa');

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into tt values('AA');

Query OK, 1 row affected (0.00 sec)

 

mysql> insert into tt values('ab');

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into tt values('AB');

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into tt values('ac');

Query OK, 1 row affected (0.00 sec)

 

mysql> insert into tt values('AC');

Query OK, 1 row affected (0.01 sec)

 

mysql> select * from tt order by name collate utf8_bin;

+------+

| name |

+------+

| AA   |

| AB   |

| AC   |

| aa   |

| ab   |

| ac   |

+------+

6 rows in set (0.01 sec)

 

mysql> select * from tt order by name collate utf8_general_ci;

+------+

| name |

+------+

| aa   |

| AA   |

| ab   |

| AB   |

| ac   |

| AC   |

+------+

6 rows in set (0.00 sec)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8117479/viewspace-704420/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8117479/viewspace-704420/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值