linux 下安装MySQL 5.5.35 数据库以及配置主从复制

MySql 5.5安装
http://dev.mysql.com/downloads/mysql/
版本:5.5.35
机器上有5.1的版本,先卸载
[root@mss-xx01 mysql]# rpm -ev mysql-server-5.1.52-1.el6_0.1.x86_64
error: Failed dependencies:
        mysql-server is needed by (installed) akonadi-1.2.1-2.el6.x86_64
出现错误用如下命令       
[root@mss-xx01 mysql]# rpm -e --nodeps  mysql-server-5.1.52-1.el6_0.1.x86_64

剩下的包卸载如下:
[root@mss-xx01 mysql]# rpm -e --nodeps  mysql-5.1.52-1.el6_0.1.x86_64
[root@mss-xx01 mysql]# rpm -e --nodeps mysql-devel-5.1.52-1.el6_0.1.x86_64
[root@mss-xx01 mysql]# rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64


1、安装是会自动创建mysql组和mysql用户

2、创建Mysql
[root@mss-xx01 software]# chown root:root MySQL-*.rpm
[root@mss-xx01 software]# ls -lrt
total 372424
-rw-r--r--. 1 root root  17721015 Nov  6 19:57 MySQL-client-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root   6470810 Nov  6 19:57 MySQL-devel-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root  67358198 Nov  6 19:57 MySQL-embedded-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root  50506308 Nov  6 19:58 MySQL-server-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root   2018291 Nov  6 19:59 MySQL-shared-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root   5179479 Nov  6 19:59 MySQL-shared-compat-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root  41415050 Nov  6 19:59 MySQL-test-5.5.35-1.linux2.6.x86_64.rpm
-rw-r--r--. 1 root root 190679040 Jan 13 16:00 MySQL-5.5.35-1.linux2.6.x86_64.rpm-bundle.tar
[root@mss-xx01 software]# rpm -ivh MySQL-server-5.5.35-1.linux2.6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:MySQL-server           ########################################### [100%]

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h mss-xx01 password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug script!

[root@mss-xx01 software]# rpm -ivh MySQL-client-5.5.35-1.linux2.6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:MySQL-client           ########################################### [100%]
[root@mss-xx01 software]#  /etc/init.d/mysql start
Starting MySQL..[  OK  ]
[root@mss-xx01 software]# netstat -an |grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN     
[root@mss-xx01 software]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>  exit

--更改mysql密码为123456
[root@mss-xx01 software]#  /usr/bin/mysqladmin -u root password '123456'
[root@mss-xx01 software]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
[root@mss-xx01 software]# pwd
/data/software
[root@mss-xx01 software]# cd /var/
[root@mss-xx01 var]# ls
account  crash  db     games  lib    lock  lost+found  nis  preserve  spool  www
cache    cvs    empty  gdm    local  log   mail        opt  run       tmp    yp
[root@mss-xx01 var]# cd lib
[root@mss-xx01 lib]# ls
alternatives  cs               dnsmasq  htdig             mlocate         PackageKit  pulse        rpm        udisks
authconfig    dav              fprint   ipa-client        mysql           plymouth    qpidd        samba      up2date
bluetooth     dbus             games    logrotate.status  NetworkManager  polkit-1    random-seed  sss        xdm
cas           DeviceKit-power  gdm      matahari          nfs             postfix     readahead    stateless  xkb
certmonger    dhclient         hsqldb   misc              ntp             prelink     rhsm         udev       yum
[root@mss-xx01 lib]# cd mysql/
[root@mss-xx01 mysql]# ls
ibdata1      ib_logfile1   mss-xx01.pid  mysql.sock          RPM_UPGRADE_HISTORY      test
ib_logfile0  mss-xx01.err  mysql         performance_schema  RPM_UPGRADE_MARKER-LAST
[root@mss-xx01 mysql]# pwd
/var/lib/mysql
[root@mss-xx01 mysql]# 

/data/mysql/mysql

--更改mysql数据文件路径
[root@mss-xx01 lib]# service mysql stop
Shutting down MySQL.[  OK  ]
[root@mss-xx01 lib]# netstat -an |grep 3306
[root@mss-xx01 lib]# mv  /var/lib/mysql  /data/mysql/
[root@mss-xx01 lib]# cd /data/mysql/
[root@mss-xx01 mysql]#
[root@mss-xx01 mysql]# ls
mysql
[root@mss-xx01 mysql]# cd mysql/
[root@mss-xx01 mysql]# vi /etc/rc.d/init.d/mysql


basedir=

datadir=/data/mysql/mysql

(4)拷贝配置文件到/etc目录下,并命名为my.cnf(必须名为my.cnf)

#cp  /usr/share/mysql/my-medium.cnf  /etc/my.cnf

这儿要注意:/usr/share/mysql/下有好几个结尾为cnf的文件,它们的作用分别是:

1.my-small.cnf是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2.·my-medium.cnf是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3·my-large.cnf是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。
4·my-huge.cnf是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。
(5)最后配置/etc/my.cnf文件的datadir,和mysql.sock路径以及默认编码utf-8.,红色字体标示为修改后的。
[client]

password        = 123456

port            = 3306

socket          = /data/mysql/mysql/mysql.sock

 default-character-set=utf8

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

port            = 3306

socket          = /data/mysql/mysql/mysql.sock

6.建库、建表、插入记录等基本操作
 1)建库 mysql> create database orcl;
 2)  打开库 mysql> use orcl; (打开库,对每个库进行操作就要打开此库,类似于foxpro )
           Database changed
 3) 建表
 
 create table test(id int,name char(20));
 insert into test values (1,'test1');
 insert into test values (2,'test2');
 
 mysql> select * from test;
 
----------------MySQL主从配置-------------
主机器  192.168.231.1
从机器  192.168.231.2
主机器更改my.cnf
[root@mss-xx01 mysql]# vi /etc/my.cnf
server-id       = 1
##添加如下
binlog-do-db=orcl ##配置要同步的数据库
binlog-do-db=数据库名2   ##如果多个,可以换行写


主数据库
mysql>  grant  FILE,select,REPLICATION SLAVE   on *.* to [email protected] identified by '123456';

mysql> flush privileges;

 mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      470 | orcl         |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

 --在主数据库查看用户权限
 mysql> show grants for 'slaveuser'@'192.168.231.2';
 
---------------从数据库---------
1、从机器更改my.cnf
[root@mss-xx02 mysql]# vi /etc/my.cnf
server-id       = 2
##添加如下
binlog-do-db=orcl ##配置要同步的数据库
binlog-do-db=数据库名2   ##如果多个,可以换行写
2、从数据库根据上面返回的值,进行设置
mysql> change master to master_host='192.168.231.1',master_port=3306,
 master_user='slaveuser', master_password='123456', master_log_file='mysql-bin.000003', master_log_pos=277;

mysql> start slave;
mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.231.1
                  Master_User: slaveuser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 1348
               Relay_Log_File: mss-xx02-relay-bin.000004
                Relay_Log_Pos: 1324
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: orcl
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1348
              Relay_Log_Space: 1799
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
1 row in set (0.00 sec)
查看状态
此处注意, !!!!两台机器防火墙一定不能开!!!

3、--先测试从数据库是否可以连上主数据库
 mysql –h 192.168.231.1 –u slaveuser –p
 如果正常,表名可以连


测试,

 create table test1(id int,name char(20));
 insert into test1 values (1,'test1');
 insert into test1 values (2,'test2');

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values ("localhost","esb",password("esb"));

//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:esb 密码为:esb 的用户。

然后登录一下。

mysql>exit;
@>mysql -u esb -p
@>输入密码
mysql>登录成功

2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;

4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges;
 

猜你喜欢

转载自andyniu.iteye.com/blog/2003794
今日推荐