一、安装mysql准备
1.1 下载mysql软件包
mkdir -p /home/xuekun/mysql
cd /home/xuekun/tools/mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.10.tar.gz
1.2安装mysql软件
yum -y install make gcc-c++ cmake bison bison-devel ncurses-devel
tar xvf mysql-5.6.16.tar.gz
cd mysql-5.6.16
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
1.3创建mysql用户
groupadd mysql
useradd -g mysql -M -s /sbin/nologin mysql
1.4创建mysql数据文件目录
mkdir -p /data/3306/data
mkdir -p /data/3307/data
tree /data/
/data/
|-- 3306
| `-- data
`-- 3307
`-- data
4 directories, 0 files
1.5 授权mysql用户及组访问数据文件目录
chown -R mysql:mysql /data/3306
chown -R mysql:mysql /data/3307
1.6 建立3306,3307 my.cnf配置文件
vim /data/3306/my.cnf
vim /data/3307/my.cnf
需要添加的my.cnf内容见附录B:或本文档目录下的my.cnf文件
#授权mysql用户及组访问my.cnf
chown -R mysql:mysql /data/3306/my.cnf
chown -R mysql:mysql /data/3307/my.cnf
1.7 建立mysql启动脚本
vim /data/3306/mysql
vim /data/3307/mysql
需要添加的mysql 内容见附录C:或本文档目录下的mysql文件
chmod 700 /data/3306/mysql
chmod 700 /data/3307/mysql
1.8 初始化数据库
vim /etc/profile
PATH=/usr/local/mysql/bin:$PATH
export PATH
#关闭文件,运行下面的命令,让配置立即生效
source /etc/profile
cd /usr/local/mysql
scripts/mysql_install_db --datadir=/data/3306/data
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h A password 'new-password'
Alternatively you can run:
/usr/local/mysql/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.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/mysql/bin/mysqlbug script!
scripts/mysql_install_db --datadir=/data/3307/data
Installing MySQL system tables...
OK
Filling help tables...
OK
同上面3306的内容,因此,此处省略。
chown -R mysql:mysql /data
1.9 启动数据库
启动mysql实例的命令为
/data/3306/mysql start
Starting MySQL...
/data/3307/mysql start
Starting MySQL...
检查启动情况:
netstat -lnt|grep 330[6-7]
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN
并加入/etc/rc.local,设置为开机自启动
echo "/data/3306/mysql start" >>/etc/rc.local
echo "/data/3307/mysql start" >>/etc/rc.local
cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/data/3306/mysql start
/data/3307/mysql start
提示:如果此步中的数据库启动不了,请稍微等待下,如果还不行请查看错误日志,路径在my.cnf的最下面。
二、配置mysql数据库
2.1 访问测试登陆情况
mysql -uroot -p -S /data/3306/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.51-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select version();
+------------+
| version() |
+------------+
| 5.1.51-log |
+------------+
1 row in set (0.02 sec)
mysql> system mysql -uroot -p -S /data/3307/mysql.sock #-->system的用法
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.51-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.01 sec)
mysql> quit
Bye
提示:安装完mysql初始登陆管理员root用户无密码。
更改root密码
mysqladmin -u root password 'bdkyr14511' -S /data/3306/mysql.sock
mysqladmin -u root password 'bdkyr14511' -S /data/3307/mysql.sock
#测试改密码后的登陆情况
mysql -uroot -p'bdkyr14511' -S /data/3306/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.51-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> system mysql -uroot -p'bdkyr14511' -S /data/3307/mysql.sock
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
mysql> system mysql -uroot -p'hyran0926' -S /data/3307/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.51-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
提示:一般产品环境,禁止将密码写在命令行中,非常危险。
2.2清理系统默认的多余mysql用户
mysql -uroot -p'bdkyr14511' -S /data/3306/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.51-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| | A |
| root | A |
| | localhost |
| root | localhost |
+------+-----------+
5 rows in set (0.00 sec)
mysql> drop user ''@'localhost';
Query OK, 0 rows affected (0.04 sec)
mysql> drop user ''@'A';
Query OK, 0 rows affected (0.01 sec)
mysql> drop user 'root'@'A';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)
用同样的方法处理3307的用户。
处理后结果:
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)