mysql安装笔记文档格式.docx
《mysql安装笔记文档格式.docx》由会员分享,可在线阅读,更多相关《mysql安装笔记文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
说明数据库可正常访问
要设置数据库的密码,见后节
注:
Linux下用rpm包安装的MySQL是不会安装/etc/f文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这有两个说法,
第一种说法,f只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-f文件,这种说法仅限于rpm包安装的MySQL,
解决方法,只需要复制一个/usr/share/mysql目录下的。
cnf文件到/etc目录,并改名为f即可
使用二进制文件的安装
在www.mysql.org下载文件mysql-5.5.28-linux2.6-i686.tar.gz
使用root帐户登录,将该文件上传到/tmp下
执行以下命令
groupaddmysql
useradd-gmysqlmysql
cd/usr/local
tarzxvf/tmp/mysql-5.5.28-linux2.6-i686.tar.gz
此命令会创建mysql目录并解压程序到该目录中
cdmysql
scripts/mysql_install_db--user=mysql
执行脚本创建数据库
chown-Rroot.
chown-Rmysqldata
chgrp-Rmysql.
bin/mysqld_safe--user=mysql&
启动数据库,此时,数据是没有密码的
安全设置root密码
如果要设置密码,应该执行
mysql-uroot
mysql>
SELECTHost,UserFROMmysql.user;
查找在User列有root和在Host列没有localhost的记录。
SETPASSWORDFOR'
'
@'
localhost'
=PASSWORD('
mysql'
);
host_name'
设置用户密码后,使用客户端连接必须带-p参数(提示输入密码),否则报错。
要解决该问题,可以更改f配置文件,输入对应密码,之后连接都不用输了。
配置文件f的处理
find.–name‘my*.cnf’
查找安装文件夹内的配置文件,结果应该如图
./mysql-test/suite/rpl/f
./mysql-test/suite/federated/f
./support-files/my-f
./support-files/my-innodb-heavy-4G.cnf
复制其中的一个到/etc目录(mysql优先使用/etc/f),例如
cp./support-files/my-f/etc/f
更改mysql用户的.bash_profile文件,增加path/usr/local/mysql/bin
以后使用mysql用户启动数据库可以省略路径
关闭重启数据库
Mysqladminshutdown
Mysqld_safe
使用mysql登录,
showvariableslike‘server_id’
可以看到server_id=1,和新配置文件中一致,说明配置文件已经起作用
远程连接数据库的时候,出现ERROR1130(HY000):
Host'
192.168.0.1'
isnotallowedtoconnecttothisMySQLserver提示信息,不能远程连接数据库,但本地可以
解决方法:
授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANTALLPRIVILEGESON*.*TO'
myuser'
%'
IDENTIFIEDBY'
mypassword'
WITHGRANTOPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
Mysql在linux下的MASTER-SLAVE安装
单向异步复制安装
此安装方式为单向异步复制,首先在两台机器上各安装mysql,安装方法见前所述。
主机上更改f增加参数
server_id=1
主机上增加新用户专用于复制,锁住表,备份数据
grantreplicationslaveon*.*
->
to'
slave'
identifiedby'
;
QueryOK,0rowsaffected(0.00sec)
FLUSHTABLESWITHREADLOCK;
进入数据目录,执行
tar-cvf/tmp/mysql-snapshot.tar.
将数据文件打包到mysql-snapshot.tar中,然后传输到从机上去
scp/tmp/mysql-snapshot.tarroot@172.16.2.52:
/tmp
主机查询系统状态,记录日志文件和偏移量位置
showmasterstatus;
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
|mysql-bin.000004|248|||
1rowinset(0.00sec)
之后主机表解锁,重新启动写活动
UNLOCKTABLES;
从机上更改f增加参数
server_id=2
从机在mysql的数据目录下解压传输过去的tar文件(不知道数据目录位置的可以在mysql下使用showvariableslike‘datadir’查看)
tar-xvf/tmp/mysql-snapshot.tar
从机重启mysql服务
[root@prodb~]#mysqladminshutdown
12112116:
47:
47mysqld_safemysqldfrompidfile/var/lib/mysql/prodb.pidended
[1]+Donemysqld_safe
[root@prodb~]#mysqld_safe--skip-slave-start
48:
18mysqld_safeLoggingto'
/var/lib/mysql/prodb.err'
.
18mysqld_safeStartingmysqlddaemonwithdatabasesfrom/var/lib/mysql
设置master,然后启动slave
CHANGEMASTERTO
MASTER_HOST='
172.16.2.39'
MASTER_USER='
MASTER_PASSWORD='
MASTER_LOG_FILE='
mysql-bin.000004'
MASTER_LOG_POS=248;
QueryOK,0rowsaffected(0.07sec)
startslave;
这样从机的设置也完成了。
如果一切顺利,到此已经完成master-slave配置。
可以进行测试了。
在主库上增加数据库,表,插入数据。
然后到从库去查,应该都能查到。
出现问题的诊断
查看从机的process
showprocesslist\G;
***************************1.row***************************
Id:
1
User:
root
Host:
localhost
db:
NULL
Command:
Query
Time:
0
State:
Info:
showprocesslist
***************************2.row***************************
2
systemuser
Connect
204
Connectingtomaster
***************************3.row***************************
3
79
Slavehasreadallrelaylog;
waitingfortheslaveI/Othreadtoupdateit
3rowsinset(0.00sec)
该信息表示线程2是同主服务器通信的I/O线程,线程3是处理保存在中继日志中的更新的SQL线程。
SHOWPROCESSLIST运行时,两个线程均空闲,等待其它更新。
请注意Time列的值可以显示从服务器比主服务器滞后多长时间
查看主机的线程
showprocesslist\G
40
54
slave
:
34786
BinlogDump
98
Masterhassentallbinlogtoslave;
waitingforbinlogtobeupdated
2rowsinset(0.00sec)
可以看到其中有一个binlogdump进程,这说明运行正常。
在从机上查看slave运行状态
showslavestatus\G;
Slave_IO_State:
Waitingformastertosendevent
Master_Host:
172.16.2.39
Master_User:
Master_Port:
3306
Connect_Retry:
60
Master_Log_File:
mysql-bin.000004
Read_Master_Log_Pos:
654
Relay_Log_File:
prodb-relay-bin.000004
Relay_Log_Pos:
659
Relay_Master_Log_File:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
1127
Until_Condition:
None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed:
No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert:
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
从中可看出slave是否完全正常。
Mysql在linux下的cluster安装
环境准备:
在http:
//www.mysql.org下载mysql-cluster-gpl-7.2.9-linux2.6-i686.tar.gz
准备5台机器,规划如下
管理节点
192.168.1.55
rhel-server-5.5-i386
数据节点
192.168.1.52
192.168.1.53
Sql节点
192.168.1.54
192.168.1.51
对每一台机器,检查是否已安装mysql,如果已有,卸载之.同时清除/etc/f/var/lib/mysql
rpm–qa|grepmysql
rpm–emysql*
关闭防火墙
Iptables是一个包含在绝大多数Linux发行版中的防火墙。
在默认安装的RHEL中,防火墙是打开的,且随机启动,如果要关闭防火墙,可以使用以下命令:
serviceiptablesstop
以上命令执行完毕之后效果只能保持到下次重启。
重启后的配置就还原了,如果希望能够在重启之后还能够保持防火墙的关闭状态,可以使用以下命令:
chkconfig--level35iptablesoff
软件安装
对所有数据节点和SQL节点,进行下列安装操作:
上传文件到/tmp目录下,创建用户
解压文件,执行安装
cd/tmp
tar-C/usr/local-xzvfmysql-cluster-gpl-7.2.9-linux2.6-i686.tar.gz
ln-s/usr/local/mysql-cluster-gpl-7.2.9-linux2.6-i686/usr/local/mysql
cd/usr/local/mysql
mkdirsock
更改文件夹访问权限
chown-Rmysqlsock
对SQL节点设置操作系统的自动启动脚本,设置后机器重启动时mysql会自动启动
cpsupport-files/mysql.server/etc/rc.d/init.d/
chmod+x/etc/rc.d/init.d/mysql.server
chkconfig--addmysql.server
chkconfig--level35mysql.serveron
设置path
vi/root/.bash_profile
在path列增加/usr/local/mysql/bin路径后保存退出,启用该配置。
source/root/.bash_profile
对管理节点,进行下列安装操作:
上传文件到/tmp目录,Root登录,执行下列命令
cp/usr/local/mysql-cluster-gpl-7.2.9-linux2.6-i686/bin/ndb_mgm*/usr/local/bin
cd/usr/local/bin
chmod+xndb_mgm*
配置
SQL节点
vi/etc/f
增加内容
[client]
socket=/usr/local/mysql/sock/mysql.sock
[mysqld]
#Optionsformysqldprocess:
ndbcluster#runNDBstorageengine
ndb-connectstring=192.168.1.55#locationofmanagementserver
datadir=/usr/local/mysql/data
[mysql_cluster]
#Optionsforndbdprocess:
ndb-connectstring=192.168.1.55#locationofmanagementserver
创建cluster配置文件
mkdir/var/lib/mysql-cluster
cd/var/lib/mysql-cluster
viconfig.ini
[ndbddefault]
#Optionsaffectingndbdprocessesonalldatanodes:
NoOfReplicas=2#Numberofreplicas
DataMemory=80M#Howmuchmemorytoallocatefordatastorage
IndexMemory=18M#Howmuchmemorytoallocateforindexstorage
#ForDataMemoryandIndexMemory,wehaveusedthe
#defaultvalues.Sincethe"
world"
databasetakesup
#onlyabout500KB,thisshouldbemorethanenoughfor
#thisexampleClustersetup.
[tcpdefault]
#TCP/IPoptions:
portnumber=2202#Thisthedefault;
however,youcanuseany
#portthatisfreeforallthehostsinthecluster
#Note:
Itisrecommendedthatyoudonotspecifytheport
#numberatallandsimplyallowthedefaultvaluetobeused
#instead
[ndb_mgmd]
#Managementprocessoptions:
hostname=192.168.1.55#HostnameorIPaddressofMGMnod