一、安装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)