系统环境:
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[[email protected] tools]# uname -a
Linux localhost 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] tools]#
软件准备:
[[email protected] tools]# pwd
/opt/tools
[[email protected] tools]# ll
total 674208
-rw-r--r-- 1 root root 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root 50516207 May 25 12:01 mysql-5.7.13.tar.gz
[[email protected] tools]#
解压安装:
[[email protected] tools]# tar xf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
[[email protected] tools]# ll
total 674212
drwxr-xr-x 9 7161 wheel 4096 May 25 15:04 mysql-5.7.13-linux-glibc2.5-x86_64
-rw-r--r-- 1 root root 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root 50516207 May 25 12:01 mysql-5.7.13.tar.gz
[[email protected] tools]#
[[email protected] tools]# mv mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql
[[email protected] tools]#
初始化操作(生成初始密码):
[[email protected] mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
2016-07-22T09:58:15.001776Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-07-22T09:58:15.062066Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-22T09:58:15.073009Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cebfb8a6-4ff2-11e6-8c8d-005056a01a07.
2016-07-22T09:58:15.074370Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
2016-07-22T09:58:15.075736Z 1 [Note] A temporary password is generated for [email protected]: k_1ljzVh3<-,
[[email protected] mysql]#
PS: mysql5.7新特性:由上面可以看出, mysql_install_db 已经不再推荐使用了,建议改成 mysqld --initialize 完成实例初始化。
加入MySQL为系统服务:
[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql]# chkconfig mysqld on
[[email protected] mysql]# chkconfig --list|grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] mysql]#chmod 755 /etc/init.d/mysqld
MySQL服务启动、重启、停止
[[email protected] mysql]# serivce mysqld start
[[email protected] mysql]# serivce mysqld stop
[[email protected] mysql]# serivce mysqld restart
[[email protected] mysql]#
设置环境变量:
[[email protected] mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[[email protected] mysql]#
检查MySQL是否能开启
[[email protected] mysql]# cd /usr/local/mysql
[[email protected] mysql]# cd support-files/
[[email protected] support-files]# ./mysql.server start
Starting MySQL.. SUCCESS!
若改用了, 则在启动服务时会出现如下错误:
# ./support-files/mysql.server start
./support-files/mysql.server: line 276: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn‘t find MySQL server (/usr/local/mysql/bin/mysqld_safe)
这时候我们需要修改/support-files/mysql.server文件的basedir和datadir目录路径为我们正确的mysql的basedir和datadir路径, 如下:
# vim support-files/mysql.server
--------------------------
...
basedir=/usr/local/mysql
datadir=/data/mysql/data
...
--------------------------
# ./support-files/mysql.server start
Starting MySQL.. SUCCESS!
创建配置文件
将默认生成的my.cnf备份
# mv /etc/my.cnf /etc/my.cnf.bak
[[email protected] support-files]# cp my-default.cnf /etc/my.cnf
初始化mysql用户root的密码
先将mysql服务停止
# service mysqld stop
进入mysql安装目录, 执行:
# cd /usr/local/mysql
# ./bin/mysqld_safe --skip-grant-tables --skip-networking&
[1] 6225
[[email protected] mysql]# 151110 02:46:08 mysqld_safe Logging to ‘/data/mysql/data/localhost.localdomain.err‘.
151110 02:46:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data
另外打开一个终端(p.s. 如果是ssh连接登录的, 另外创建一个ssh连接即可), 执行操作如下:
# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, 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> use mysql;
Database changed
mysql> UPDATE user SET password=PASSWORD(‘123456‘) WHERE user=‘root‘;
ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
mysql> update user set authentication_string = PASSWORD(‘123456‘) where user = ‘root‘;
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \s
mysql Ver 14.14 Distrib 5.7.13, for linux-glibc2.5 (x86_64) using EditLine wrapper
Connection id: 62
Current database:
Current user: [email protected]
SSL: Not in use
Current pager: stdout
Using outfile: ‘‘
Using delimiter: ;
Server version: 5.7.13-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /data/AEData/mysql/data/mysql.sock
Uptime: 46 min 54 sec
Threads: 6 Questions: 6846 Slow queries: 0 Opens: 257 Flush tables: 1 Open tables: 201 Queries per second avg: 2.432
--------------
mysql>
到此, 设置完mysql用户root的密码且确保mysql编码集是utf8, 注意上面, 新版本的mysql.user表里的密码字段是authentication_string
MySQL远程授权
格式如下:
mysql> grant all [privileges] on db_name.table_name to ‘username‘@‘host‘ identified by ‘password‘;
示例如下:
mysql> grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
或用
mysql> grant all on *.* to ‘root‘@‘%‘ identified by ‘123456‘;
到此, 完成了mysql的安装 及配置!!!
参考案例:http://blog.csdn.net/cryhelyxx/article/details/49757217