安装mysql5.5.
5.5的安装已经不再像5.1那样是用./configure,而是用cmake
cmake -DCMAKE_INSTALL_PREFIX=/app/mysql/
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DENABLED_LOCAL_INFILE=ON
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock
-DEXTRA_CHARSETS=all
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_DEBUG=0
-DMYSQL_DATADIR=/app/mysql/data/
Make
Make install
Mysql_install_db –user 如果报错,试试加上–basedir –datadir
/home/mysql/mysql/mysql/scripts/mysql_install_db--user=mysql --datadir=/app/mysql/data --basedir=/app/mysql
没权限的话,chmod755 mysql_install_db
mv /home/mysql/mysql/mysql/support-files/my-medium.cnf /etc/my.cnf
我安装时的-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock参数与后一个参数中间没有加空格,所以这个参数没有生效。手动修改/etc/my.cnf,修改client和mysqld的条目里的sock为同一个地址,不然会报错。
在重新安装前,删除下/home/mysql/mysql//mysql/ CMakeCache.txt文件。
在一台linux服务器上搭建多台mysql
第一台的搭建和以前一样,不在详述。
第二台
cmake
cmake -DCMAKE_INSTALL_PREFIX=/app/slave/
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci(如果修改了默认的字符集,这个排序规则参数也是要改的,不然排序和字符集会冲突,报错。)
-DENABLED_LOCAL_INFILE=ON
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/app/slave/mysql.sock
-DEXTRA_CHARSETS=all
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_DEBUG=0
-DMYSQL_DATADIR=/app/slave/data/
然后就是make,make install,mysql_install_db。这些都一样,主要是在参数配置上。
1、 my.cnf
mysql启动时会从/etc/my.cnf读取参数配置。现在有了两台数据库,就需要分别制定不同的.cnf。方式是copy一个my_slave.cnf。修改
[mysqld]
port =3307
socket =/app/slave/mysql.sock
client条目随意。因为客户端启动时,也是去读my.cnf中的配置。所以不需要my_slave.cnf中client的配置。
2、 启动数据库 /app/mysql/bin/mysqld_safe &
/app/slave/bin/mysqld_safe --defaults-file=/etc/my_slave.cnf&
若使用--defaults-file参数,则这个参数必须为第一个选项
3、 客户端连接服务器。连接默认的服务器时(就是my.cnf客户端写的那台服务器),
不管以那个home下的客户端来连接都无所谓。
要想连接另外一台,则需要/app/slave/bin/mysql -S/app/slave/mysql.sock -u root –p (-S 制定用来连接的sock文件。每个服务器一个sock文件)
4、 关闭。默认的那台可以直接关闭。第二台则需要制定-S参数 其它倒是一样。-S用来指定连接时所使用的.sock文件。只要是非连接到默认服务器的客户端连接,都需要制定-S 来覆盖my.cnf中的默认配置。