1 下载二进制包: 官网 *glibc2*
2 解压包到定义路径: tar zxvf *.gz /usr/local/mysql
3 安装步骤
3.1 创建用户
[root@dominic ]# groupadd mysql
[root@dominic ]# useradd -m -r -g mysql mysql
3.2 创建目录
[root@dominic ]# mkdir /service/data
3.3 解压
[root@dominic ]# cd /service/data
[root@dominic ]# tar -xzvf mysql-advanced-5.6.21-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql
[root@dominic ]# move mysql-advanced-5.6.21-linux-glibc2.5-x86_64 mysql
[root@dominic ]# cd mysql
[root@dominic mysql]# chown -R mysql .
[root@dominic mysql]# chgrp -R mysql .
# su - mysql
$vi .bash_profile
echo PATH=/usr/local/mysql/bin:$PATH:/data/bin:$PATH:$HOME/bin
----------以下是5.6.* mysql版本安装方式-----------
3.4 安装数据库
[root@dominic mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/service/data/
--在这里,注意查看一下/etc/hosts , 绑定一下主机名及IP 地址,否然 不能初始化。
4 配置 数据库
#
cp support-files/mysql.server /etc/init.d/mysqld
//设置mysql服务器操作路径
#chmod 755 /etc/init.d/mysqld//更改权限
#bash scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/service/data///安装数据库,并设置用户名和数据存放位置
# cp /usr/local/mysql/my.cnf /etc/my.cnf
# chown -R mysql:mysql /etc/my.cnf /etc/init.d/mysqld
5 修改 my.cnf 配置文件:
[mysqld]
port=3308c
datadir=/service/data
pid-file=/var/run/mysqld/mysqlbinary.pid
socket=/var/run/mysqld/mysqlbinary.socket
log=/var/log/mysqld/mysqlbinary.log
log-error=/var/log/mysqldlbinary-err.log
[client]
socket=/var/run/mysqld/mysqlbinary.socket
第二步:创建相关目录,并修改权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 775 /usr/local/mysql
chmod -R 775 /etc/mysqld
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
因为是编译好了的, 可以做一个软连接形式:
或者用这样的方法:
ln -s /usr/local/mysql/data/mysqlbinary.socket /tmp/mysql.sock
----------------以下是5.7.8 之后的安装方式 ---------------------
5.7.8 版本以后,mysql 数据库做了一些变更:
1, 初次进入 mysql 库需要 输入初始密码,路径在 /home/mysql/下:
[mysql@martinli02 mysql-5.7.10]$ cat /home/mysql/.mysql_secret
# Password set for user '
root@localhost' at 2015-12-27 23:17:57
.hyMlk?!b6M!
2,5.6 中的这一步
“
#
bash scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/service/data/
//安装数据
”
=>
basedir=/usr/local/mysql/ 中 没有了 scripts 目录,同事mysql_install_db 放在了 bin 目录下
。
3, 5.7.8 以后安装如下:
编辑初始化参数:
[mysql@martinli02 bin]$ pwd
/usr/local/mysql-5.7.10/bin
[mysql@martinli02 bin]$ ./mysql_install_db --user=mysql --datadir=/mysqldb/mysql-data/
2015-12-27 23:17:57 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2015-12-27 23:18:02 [WARNING] The bootstrap log isn't empty:
2015-12-27 23:18:02 [WARNING] 2015-12-27T15:17:57.126476Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2015-12-27T15:17:57.127493Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2015-12-27T15:17:57.127515Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
初始化数据库:(初始可忽略)
[mysql@martinli02 bin]$ /usr/local/mysql-5.7.10/bin/mysqld --initialize --datadir=/mysqldb/mysql-data/
启动数据库1:
[mysql@martinli02 bin]$ /usr/local/mysql-5.7.10/bin/mysqld_safe --basedir= /xxxx/yyy datadir=/yy/xx
[mysql@martinli02 bin]$ ps -ef |grep mysql
mysql 911 1 0 Dec27 pts/0 00:00:00 /bin/sh /usr/local/mysql-5.7.10/bin/mysqld_safe --datadir=/mysqldb/mysql-data --pid-file=/mysqldb/mysql-data/martinli02.com.pid
mysql 1093 911 0 Dec27 pts/0 00:00:00 /usr/local/mysql-5.7.10/bin/mysqld --basedir=/usr/local/mysql-5.7.10 --datadir=/mysqldb/mysql-data --plugin-dir=/usr/local/mysql-5.7.10/lib/plugin --log-error=/usr/local/mysql-5.7.10/mysql.log --pid-file=/mysqldb/mysql-data/martinli02.com.pid --socket=/tmp/mysql.sock
[mysql@martinli02 bin]$ netstat -altn |grep 3306
tcp 0 0 :::3306 :::* LISTEN
启动数据库2 :
这里也可以把/etc/my.cnf 重新配置,把 此项拷贝,并授权:
# cp support-files/mysql.server /etc/init.d/mysqld //设置mysql服务器操作路径
# cp /usr/local/mysql-5.7.10/my.cnf /etc/my.cnf
# chown -R mysql:mysql /etc/my.cnf /etc/init.d/mysqld
同时最好在 .bash_profile 中设置PATH, 方便操作。
[mysql@sfpay ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export DATADIR=/data/mysql/
export BASEDIR=/usr/local/mysql-5.7.10/
export PATH=$DATADIR/bin:$PATH:$BASEDIR/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$DATADIR/lib:$LD_LIBRARY_PATH:$BASEDIR/lib
4, 以下是初始密码设置:
1.mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要登录。
shell> cat /home/mysql/.mysql_secret
# Password set for user 'root@localhost' at 2015-04-22 22:13:23
?G5W&tz1z.cN
2.若第一步成功,则使用该密码继续第7步(笔者由于找不到该文件,只能从第3步开始)
3.修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
或者:# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & --取消掉密码方式
4.service mysqld restart后,即可直接用mysql进入
5.mysql> update mysql.user set authentication_string=password('mysql123') where user='root' and Host = 'localhost';
mysql> flush privileges;
mysql> quit;
--这里 mysql.user 下 再也没有5.7.8 之前的password 这个密码字段,由authentication_string 替代。
6.将/etc/my.cnf文件还原,重新启动mysql:service mysql restart,这个时候可以使用mysql -u root -p'123qwe'进入了
7.mysql>SET PASSWORD = PASSWORD('newpasswd'); 设置新密码
--如果不重设置初始密码(第7步)则报错:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.