mysql5.1.49安装过程(包含ms)
[size=medium][color=blue][b]1、基本mysql安装[/b][/color][/size]
[code="java"]因为⼯作需要,今天在linux上安装了mysql,现在把⼤致的过程记录⼀下。
我⽤的mysql的版本的是:mysql-5.1.
在官⽹上就可以下载到。
先期⼯作:建⽴mysql⽤户组,mysql⽤户,并且把mysql⽤户加⼊到mysql⽤户组中。
建⽴mysql⽤户组:groupadd mysql
建⽴mysql⽤户并加⼊mysql⽤户组:useradd mysql -g mysql -p mysql123456 -s /sbin/nologin -M
说明:-g 是加⼊到mysql⽤户组,-p是设置密码,-s是设置shell,这⾥设置的是不让其登录,-M就是不建⽴⽤户⽬录。
下⾯是安装mysql的步骤
1、把按照⽂件拷贝到:/usr/local,
⽤的命令是cp –rf mysql-5.1. /usr/local/ ,
然后到⽬录/usr/local/下⾯解压缩⽂件:tar zxf mysql-5.1.
2、创建软连接:ln -s mysql-5.0.51a-linux-i686-glibc23 /usr/local/mysql
ps:链接有两种,⼀种被称为硬链接(Hard Link),另⼀种被称为符号链接(Symbolic Link),也称为软连接。建⽴硬链接时,链接⽂件和被链接⽂件必须位于同⼀个⽂件系统中,并且不能建⽴指向⽬录的硬链接。⽽对软链接,则不存在这个问题。默认情况下,ln产⽣硬链接。 如果创建软链接需要参数 -s
3、到软连接mysql⽬录下,初始化mysql表格,安装 mysql 默认数据库:
cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
完整安装参数可以参考下⾯这些
--prefix=/usr/local/mysql
-
-datadir=/usr/local/mysql/data
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
--with-mysqld-user=mysql
--sysconfdir=/usr/local/mysql/conf
--enable-local-infile
--enable-assembler
--enable-thread-safe-client
--with-charset=utf8
--with-extra-charsets=all
--with-pthread
--with-client-ldflags=-all-static
-
-with-mysqld-ldflags=-all-static
控制台打印出:
Installing MySQL
OK
Filling
OK
.....
即说明安装成功。
4、修改⽬录权限,如下:
# cd /usr/local
# chgrp -R mysql mysql-5.0.51a-linux-i686-glibc23
# chgrp -R mysql mysql
# chown -R mysql mysql-5.0.51a-linux-i686-glibc23/data
# chown -R mysql mysql/data
5、启动mysql
到mysql录下:
# bin/mysqld_safe --user=mysql --socket=/tmp/mysql.sock --port=3306 &
这种启动⽅式,看不出启动效果,因为要继续输⼊命令查看是否启动成功的话,就会停⽌数据库。所以赶紧进⾏第6步
6、添加到系统⾃启动,如下:
# cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
7、启动mysql服务进程,如下:
设置路径: ln -s /usr/local/mysql/bin/mysql /usr/bin
# /etc/init.d/mysqld start
启动完成赶紧查看mysql状态,命令: /etc/rc.d/init.d/mysqld status,看看m y s q l 是否已经启动.
还可以查看⼀下 3306 端⼝是否已经在监听:mysql下载之后是个文件夹
netstat -anp|grep LISTEN
8、给mysql的 root ⽤户指定密码为"123456",host为localhost ,如下:
在⽬录 /user/local/mysql/下⾯
bin/mysqladmin --socket=/tmp/mysql.sock --port=3306 -u root -h localhost password '123456'
注意:确定你的mysql.sock是不是在/tmp/mysql.sock这⾥,
可以vi /etc/myf 查看⼀下:
sorket=/var/lib/mysql/mysql.sock
这⾏就指定了mysql.sock的位置。
所以要修改命令为bin/mysqladmin --socket=/var/lib/mysql/mysql.sock --port=3306 -u root -h localhost password '123456' ok,密码修改成功!
9、登陆
bin/mysql --port=3306 -u root -p -S /var/lib/mysql/mysql.sock
Enter password:
输⼊ 123456
登陆成功!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.51a MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
注意:如果登录失败,报如下错误的话:
Can't connect to local MySQL server through socket'=/var/lib/mysql/mysql.sock'
#100810 22:43:43 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
可以在启动命令中加⼊ -h127.0.0.1,即:
bin/mysql -h127.0.0.1 --port=3306 -u root -p -S /var/lib/mysql/mysql.sock
10、关于chkconfig命令⽤法介绍
chkconfig(check config)
功能说明:检查,设置系统的各种服务。
语 法:chkconfig
[--add][--del][--list][系统服务]或chkconfig[--level<;等级代号>][系统服务][on/off/reset]
补充说明:这是RedHat公司遵循GPL规则所开发的程序,它可查询操作系统在每⼀个执⾏等级中会执⾏哪些系统服务,其中包括各类常驻服务。
参 数:
--add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述⽂件内增加相关数据。
--del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述⽂件内删除相关数据。
--level<;等级代号> 指定读系统服务要在哪⼀个执⾏等级中开启或关毕
1):chkconfig 命令也可以⽤来激活和解除服务。chkconfig --list 命令显⽰系统服务列表,以及这些服务在运⾏级别0到6中已被启动
(on)还是停⽌(off)。
chkconfig --list
chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2):chkconfig 还能⽤来设置某⼀服务在某⼀指定的运⾏级别内被启动还是被停运。譬如,要在运⾏级别3、4、5中停运 nscd 服务,使
⽤下⾯的命令:
chkconfig --level 345 nscd off
3):由 xinetd 管理的服务会⽴即被 chkconfig 影响。譬如,如果 xinetd 在运⾏,finger 被禁⽤,那么执⾏了 chkconfig finger on 命
令后,finger 就不必⼿⼯地重新启动 xinetd 来⽴即被启⽤。对其它服务的改变在使⽤ chkconfig 之后不会⽴即⽣效。必须使⽤service servicename start/stop/restart命令来重起服务[/code]
[size=medium][color=blue][b]2、MASTER SLAVE 配置[/b][/color][/size]
mysql数据库没有增量备份的机制,当数据量太⼤的时候备份是⼀个很⼤的问题。还好mysql数据库提供了⼀种主从备份的机制,其实就是把主数据库的所有的数据同时详细出处参考:www.jb51/article/23843.htm
1。mysql数据库没有增量备份的机制,当数据量太⼤的时候备份是⼀个很⼤的问题。还好mysql数据
库提供了⼀种主从备份的机制,其实就是把主数据库的所有的数据2。要想实现双机的热备⾸先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要⾼于3.2,还有⼀个基本的原则就是作为从数据库的数据库版本可以3。设置主数据库服务器:
a.⾸先查看主服务器的版本是否是⽀持热备的版本。然后查看myf(类unix)或者my.ini(windows)中mysqld配置块的配置有没有log-bin(记录数据库更改⽇志),因为my server-id=1 //数据库的id这个应该默认是1就不⽤改动
log-bin=log_name //⽇志⽂件的名称,这⾥可以制定⽇志到别的⽬录如果没有设置则默认主机名的⼀个⽇志名称
binlog-do-db=db_name //记录⽇志的数据库
binlog-ignore-db=db_name //不记录⽇志的数据库
以上的如果有多个数据库⽤","分割开
然后设置同步数据库的⽤户帐号
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'repl'@'%.mydomain' IDENTIFIED BY 'slavepass';
4.0.2以前的版本, 因为不⽀持REPLICATION 要使⽤下⾯的语句来实现这个功能
mysql> GRANT FILE ON *.*
-> TO 'repl'@'%.mydomain' IDENTIFIED BY 'slavepass';
设置好主服务器的配置⽂件后重新启动数据库
b.锁定现有的数据库并备份现在的数据
锁定数据库
mysql> FLUSH TABLES WITH READ LOCK;
备份数据库有两种办法⼀种是直接进⼊到mysql的data⽬录然后打包你需要备份数据库的⽂件夹,第⼆种是使⽤mysqldump的⽅式来备份数据库但是要加上"--master-d c.查看主服务器的状态
mysql> show master status\G;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
记录File 和 Position 项⽬的值,以后要⽤的。
d.然后把数据库的锁定打开
mysql> UNLOCK TABLES;
4。设置从服务器
a.⾸先设置数据库的配置⽂件
server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
pany //主服务器的IP地址或者域名
master-port=3306 //主数据库的端⼝号
master-user=pertinax //同步数据库的⽤户
master-password=freitag //同步数据库的密码
master-password=freitag //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
pany //报告错误的服务器
b.把从主数据库服务器备份出来的数据库导⼊到从服务器中
c.然后启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start"这个参数则进⼊到mysql中
mysql> slave stop; //停⽌slave的服务
d.设置主服务器的各种参数
mysql> CHANGE MASTER TO
-
> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的⽤户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器⼆进制⽇志的⽂件名(前⾯要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //⽇志⽂件的开始位置(前⾯要求记住的参数)
e.启动同步数据库的线程
mysql> slave start;
查看数据库的同步情况吧。如果能够成功同步那就恭喜了!
查看主从服务器的状态
mysql> SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程
如果⽇志太⼤清除⽇志的步骤如下
1.锁定主数据库
mysql> FLUSH TABLES WITH READ LOCK;
2.停掉从数据库的slave
mysql> slave stop;
3.查看主数据库的⽇志⽂件名和⽇志⽂件的position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin.001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
4.解开主数据库的锁
mysql> unlock tables;
5.更新从数据库中主数据库的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的⽤户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器⼆进制⽇志的⽂件名(前⾯要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //⽇志⽂件的开始位置(前⾯要求记住的参数)
6.启动从数据库的slave
mysql> slave start;
[color=red]其他问题: 当在master中配置binlog-do-db或者binlog-ignore-db配置同步数据库名称时,多数据库同步会有问题,所以master中注释掉上⾯2项配置,直接在slave中增加replicate-ignore-db=mysql 即可。
[/color]
This was a problem when I went to set up replication. After much research, I found the solution (works with 4 and up):
In your MASTER myf file, DO NOT put any 'binlog-ignore-db' or 'do-db' options. Any db's you wish to not replicate will be handled in the slave conf file .. In your SLAVE myf file, use a 'replicate-ignore-db=<db>' for all the databases from the master you wish to stop from replicating to the slave.
For all the db's you DO wish to replicate, use a 'replicate-wild-do-table=<db>.%' line.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论