Chinaunix首页 | 论坛 | 博客
  • 博客访问: 111906
  • 博文数量: 22
  • 博客积分: 2550
  • 博客等级: 少校
  • 技术积分: 495
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-17 11:52
文章分类

全部博文(22)

文章存档

2012年(1)

2009年(3)

2008年(18)

我的朋友

分类: Mysql/postgreSQL

2012-04-27 10:42:54

Mysql-5.5.21 源码安装 2012-03-14

1 mysql-5.5.21编译安装
1.1 安装所需要系统库相关库文件

gcc gcc-c gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

yum -y install gcc gcc-c autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

1.2 创建mysql安装目录  
[root@localhost ~]# mkdir -p /usr/local/mysql/

1.3 创建数据存放目录
[root@localhost ~]# mkdir -p /service/mysql/

1.4 创建用户和用户组与赋予数据存放目录权限
  [root@localhost ~]# groupadd mysql

  [root@localhost ~]# useradd -g mysql mysql

[root@localhost ~]# chown mysql.mysql -R /service/mysql/

1.5 安装cmake
(mysql-5.5以后是通过cmake来编译的)

下载解压cmake-2.8.7.tar.gz 放在/usr/local目录下

  [root@localhost local]# tar -zxvf cmake-2.8.7.tar.gz

  [root@localhost local]# cd cmake-2.8.7

  [root@localhost cmake-2.8.7]#./configure

[root@localhost cmake-2.8.7]# make && make install

1.6 安装mysql 5.5.21
下载mysql-5.5.21到/usr/local目录下

[root@localhost local]# tar -zxvf mysql-5.5.21.tar.gz

[root@localhost local]# cd mysql-5.5.21

1.7 编译mysql-5.5.21
[root@localhost mysql-5.5.21]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/service/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/service/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306



上面的命令一次拷进命令行。

[root@localhost mysql-5.5.21]# make

[root@localhost mysql-5.5.21]# make install


1.8 复制配置文件
[root@localhost mysql-5.5.21]# cp support-files/my-medium.cnf /etc/my.cnf

1.9 初始化数据库
(执行前 需要chmod 755 scripts/mysql_install_db 赋给文件执行权限)

[root@localhost mysql-5.5.21]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/service/mysql/

注:#basedir mysql安装路径 datadir 数据库文件储存路径

1.10 设置mysqld的开机启动:
[root@localhost mysql-5.5.21]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhost mysql-5.5.21]# chmod 755 /etc/init.d/mysqld

chkconfig mysqld on (设置开机启动mysql)

1.12 启动mysql服务
[root@localhost mysql-5.5.21]# /etc/init.d/mysqld start //服务器端开关

启动完成之后用ps -ef |grep mysql 命令查看是否启动

[root@localhost mysql-5.5.21]# mysql –u root –p

2 标准的mysql安装设置

2.1 设置root帐户的密码
[root@localhost mysql-5.5.21]# mysqladmin -u root password '123456'

2.2 删除本机匿名连接的空密码帐号
本机登录mysql

[root@localhost mysql-5.5.21]#mysql -u root -p
然后输入上面设置的密码,登录后在mysql的命令行中执行:

mysql>use mysql; //选择默认数据库mysql

mysql>update user set password=’root’ where user = '127.0.0.1';

mysql>delete from user where password="";//不允许root密码为空

mysql>flush privileges;

mysql>quit

2.3建表

最简单的:


2
、带主键的:

a
CREATE TABLE t1(
    id int not null primary key,
    name char(20)
);
b
:复合主键
CREATE TABLE t1(
    id int not null,
    name char(20),
    primary key (id,name)
);
3
、带默认值的:

CREATE TABLE t1(
    id int not null default 0 primary key,
    name char(20) default '1'
);

Mysql的主从复制

Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。

(1)首先确保主从服务器上的Mysql版本相同

(2)在主服务器上,设置一个从数据库的账户,使用REPLICATION SLAVE赋予权限,:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'172.16.10.143' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.13 sec)

(3)修改主数据库的配置文件my.cnf,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务

 (4)之后可以得到主服务器当前二进[mysqld]

log-bin = /home/mysql/log/mysql-bin.log

server-id=1

制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000003

Position: 243

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

(5)好了,现在可以停止主数据的的更新操作,并生成主数据库的备份,我们可以通过mysqldump到处数据到从数据库,当然了,你也可以直接用cp命令将数据文件复制到从数据库去

注意在导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.19 sec)

之后是mysqldump

mysqldump -h127.0.0.1 -p3306 -uroot -p test > /home/chenyz/test.sql

 

最好在主数据库备份完毕,恢复写操作

mysql>

Query OK, 0 rows affected (0.28 sec)

(6)将刚才主数据备份的test.sql复制到从数据库,进行导入

(7)接着修改从数据库的my.cnf,增加server-id参数,指定复制使用的用户,主数据库服务器的ip,端口以及开始执行复制日志的文件和位置

[mysqld]

server-id=2

log_bin =

192.168.1.100

master-user=test

master-pass=123456

master-port =3306

master-connect-retry=60

replicate-do-db =sms

(8)在从服务器上,启动slave进程

mysql>

(9)在从服务器进行show salve status验证

mysql> SHOW SLAVE STATUS\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: localhost

Master_User: root

Master_Port: 3306

Connect_Retry: 3

Master_Log_File: mysql-bin.003

Read_Master_Log_Pos: 79

Relay_Log_File: gbichot-relay-bin.003

Relay_Log_Pos: 548

Relay_Master_Log_File: mysql-bin .003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

(10)好了,现在可以在我们的主服务器做一些更新的操作,然后在从服务器查看是否已经更新


 

阅读(3053) | 评论(0) | 转发(0) |
0

上一篇:(第5版)Nginx 0.7.x + PHP 5.2.9(FastCGI)

下一篇:没有了

给主人留下些什么吧!~~