系统版本:

[root@master ~]# lsb_release -a

LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-

noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch

Distributor ID: CentOS

Description:    CentOS release 5.8 (Final)

Release:        5.8

Codename:       Final

[root@master ~]# uname -a

Linux master 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

安装所需要库程序:

[root@master ~]# yum -y remove mysql-server mysql mysql-devel

[root@master ~]# yum -y install gcc gcc-c++ ncurses-devel libtool openssl-devel cmake


[root@master ~]# groupadd mysql                       #创建用户组

[root@master ~]# useradd -r -g mysql mysql            #创建用户并加入组

[root@master ~]# mkdir /usr/local/mysql               #创建mysql安装目录

[root@master ~]# mkdir /opt/mysql/data                #创建数据存放目录


#设置安装和数据目录所属用户与组

[root@master ~]# chown -R mysql /usr/local/mysql

[root@master ~]# chgrp -R mysql /usr/local/mysql

[root@master ~]# chown -R mysql:mysql /opt/mysql/data


#开始安装数据库

下载安装包:mysql-5.5.37.tar.gz    5lbde3fcscar  http://115.com/lb/5lbde3fcscar

[root@master ~]# cd ~

[root@master ~]# tar zxvf ~/mysql-5.5.37.tar.gz

[root@master ~]# mv mysql-5.5.37 /usr/local/src/

[root@master ~]# cd /usr/local/src/mysql-5.5.37

[root@master ~]# cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/opt/mysql/data/ \

-DMYSQL_UNIX_ADDR=/opt/mysql/data/mysqld.sock \

-DSYSCONFDIR=/etc \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \

-DWITH_DEBUG=0 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_USER=mysql

[root@master ~]# make && make install


[root@master ~]# cp support-files/my-medium.cnf /etc/my.cnf

[root@master ~]# cp support-files/mysql.server /etc/init.d/mysqld

[root@master ~]# chmod 755 /etc/init.d/mysqld

[root@master ~]# bash scripts/mysql_install_db --user=mysql


[root@master ~]# export PATH=/usr/local/mysql/bin:$PATH

[root@master ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >>/ect/profile


[root@master ~]# bash scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/opt/mysql/data/

[root@master ~]# /etc/init.d/mysqld start

[root@master ~]# mysqladmin -uroot password "123456"

[root@master ~]# pkill mysql

[root@master ~]# mysqld_safe --user=mysql &

[root@master ~]# mysql -u root -p

mysql>use mysql ;

mysql>update user set password=PASSWORD("root") where user='root';

mysql>flush privileges;


查看端口

netstat -anp |grep mysqld


查看进程

ps -ef |grep mysql


关闭进程

pkill mysql


使用服务器启动和关闭

service mysqld restart

service mysqld start

service mysqld stop


########################################################

mysql多实例的配置和管理

########################################################

[root@master ~]# mkdir -p /opt/mysql/data2

[root@master ~]# mkdir -p /opt/mysql/data3

[root@master ~]# chown -R mysql:mysql /opt/mysql/data2

[root@master ~]# chown -R mysql:mysql /opt/mysql/data3


---------------------------------------------------------------------

[root@master ~]# cat /etc/my.cnf

[client]

#password       = your_password

port            = 3306

socket          = /opt/mysql/data/mysqld.sock


[mysqld_multi]

mysqld          = /usr/local/mysql/bin/mysqld_safe

mysqladmin      = /usr/local/mysql/bin/mysqladmin

user            = test

password        = test


[mysqld3306]

port            = 3306

socket          = /tmp/mysqld3306.sock

pid-file        = /tmp/mysql3306.pid

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

basedir = /usr/local/mysql/

datadir = /opt/mysql/data


log-bin=mysql-bin

binlog_format=mixed

server-id       = 1


[mysqld3307]

port            = 3307

socket          = /tmp/mysqld3307.sock

pid-file        = /tmp/mysql3307.pid

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

basedir = /usr/local/mysql/

datadir = /opt/mysql/data2

log-bin=mysql-bin

binlog_format=mixed

server-id       = 1


[mysqld3308]

port            = 3308

socket          = /tmp/mysqld3308.sock

pid-file        = /tmp/mysql3308.pid

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

basedir = /usr/local/mysql/

datadir = /opt/mysql/data3

log-bin=mysql-bin

binlog_format=mixed

server-id       = 1


[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

----------------------------------------------------------------------------

[root@master ~]# cd /usr/local/src/mysql-5.5.37

初始化:

[root@master mysql-5.5.37]# bash scripts/mysql_install_db --basedir=/usr/local/mysql/  --datadir=/opt/mysql/data2 --

user=mysql

[root@master mysql-5.5.37]# bash scripts/mysql_install_db --basedir=/usr/local/mysql/  --datadir=/opt/mysql/data3 --

user=mysql

启动多实例启动:

[root@master mysql-5.5.37]# mysqld_multi --defaults-file=/etc/my.cnf start 3306

[root@master mysql-5.5.37]# mysqld_multi --defaults-file=/etc/my.cnf start 3307

[root@master mysql-5.5.37]# mysqld_multi --defaults-file=/etc/my.cnf start 3308

[root@master mysql-5.5.37]# mysqld_multi --defaults-file=/etc/my.cnf start 3306-3308


登录数据库:

[root@master mysql-5.5.37]# mysql -S /opt/mysql/data/mysqld3306.sock -uroot -p123456

[root@master mysql-5.5.37]# mysql -S /opt/mysql/data/mysqld3307.sock

[root@master mysql-5.5.37]# mysql -S /opt/mysql/data/mysqld3308.sock


设置管理用户test

[root@localhost tmp]# mysqld_multi --defaults-file=/etc/my.cnf start 3308

[root@localhost tmp]# ps -ef |grep mysql

[root@localhost tmp]# mysql -S /tmp/mysqld3308.sock

mysql> show grants for root@localhost;

+---------------------------------------------------------------------+

| Grants for root@localhost                                           |

+---------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |

| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |

+---------------------------------------------------------------------+

2 rows in set (0.00 sec)

mysql> grant shutdown on *.* to test@localhost identified by "test" with grant option;

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


[root@master mysql-5.5.37]# mysqld_multi --defaults-file=/etc/my.cnf stop 3308|3306|3307    (关闭需要使用管理帐号test)



#########################################################

源代码配置选项说明:

//mysql安装的主目录,5.5.8版本默认为/usr/local/mysql,所以可以不添加

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql


//mysql数据保存的路径,自定义

-DMYSQL_DATADIR=/home/system_username/mysql/mysqldata  


//mysql配置文件地址------The default my.cnf option file directory

-DSYSCONFDIR=/etc


//Compile storage engine xxx statically into server

/*Storage engines are built as plugins. You can build a plugin as a static module (compiled into the server)    

*or a dynamic module  (built as a dynamic library that must be installed into the server using the INSTALL  

*PLUGIN statement or the --plugin-load option before it can be used). Some plugins might not support static  

*or dynamic building.

*/

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

-DWITH_PARTITION_STORAGE_ENGINE=1


//Unix socket file

/*

*The Unix socket file path on which the server listens for socket connections. This must be an absolute path  

*name. The default is /tmp/mysql.sock

*/

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock


//数据库服务器TCP/IP连接的监听端口,默认为3306

-DMYSQL_TCP_PORT=3306


//Whether to enable LOCAL capability in the client library for LOAD DATA INFILE

//默认为关闭,这里开启

-DENABLED_LOCAL_INFILE=1


//数据库编码设置

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8-general_ci