时间:2021-07-01 10:21:17 帮助过:41人阅读
5.7的二进制安装方法与5.6大概差不多,但有些地方不太一样,比如说,初始化命令的该变,5.7之后的小版本初始化命令也不相同。现在使用的是开发版的5.7.8.
第一步,下载解压二进制文件,加压,进入解压出来的文件
[root@mysql47 mysql33333]# ll
total 160
drwxr-xr-x 2 7161 wheel 4096 Jul 20 20:54 bin
-rw-r–r– 1 7161 wheel 17987 Jul 20 20:25 COPYING
drwxr-xr-x 2 7161 wheel 4096 Jul 20 20:54 docs
drwxr-xr-x 3 7161 wheel 4096 Jul 20 20:54 include
-rw-r–r– 1 7161 wheel 106739 Jul 20 20:25 INSTALL-BINARY
drwxr-xr-x 4 7161 wheel 4096 Jul 20 20:54 lib
drwxr-xr-x 4 7161 wheel 4096 Jul 20 20:54 man
-rw-r–r– 1 7161 wheel 2478 Jul 20 20:25 README
drwxr-xr-x 28 7161 wheel 4096 Jul 20 20:54 share
drwxr-xr-x 2 7161 wheel 4096 Jul 20 20:54 support-files
[root@mysql47 mysql33333]#
会发现没有data目录。没有之前mysql5.6的scripts文件夹。
我是重命名了一下,mysql33333
第二步,在mysql33333下建立data目录
第三步,更改文件夹mysql33333的文件所属用户
[root@mysql47 local]# chown -R mysql:mysql mysql33333
[root@mysql47 mysql33333]# ll
total 164
drwxr-xr-x 2 mysql mysql 4096 Jul 20 20:54 bin
-rw-r–r– 1 mysql mysql 17987 Jul 20 20:25 COPYING
drwxr-xr-x 2 mysql mysql 4096 Aug 18 11:07 data
drwxr-xr-x 2 mysql mysql 4096 Jul 20 20:54 docs
drwxr-xr-x 3 mysql mysql 4096 Jul 20 20:54 include
-rw-r–r– 1 mysql mysql 106739 Jul 20 20:25 INSTALL-BINARY
drwxr-xr-x 4 mysql mysql 4096 Jul 20 20:54 lib
drwxr-xr-x 4 mysql mysql 4096 Jul 20 20:54 man
-rw-r–r– 1 mysql mysql 2478 Jul 20 20:25 README
drwxr-xr-x 28 mysql mysql 4096 Jul 20 20:54 share
drwxr-xr-x 2 mysql mysql 4096 Jul 20 20:54 support-files
[root@mysql47 mysql33333]#
第四步,初始化数据库
由于我的版本是5.6.8.所以根据官档的说明,进行安装。以下是官档的相关说明。
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chmod 770 mysql-files
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db –user=mysql # Before MySQL 5.7.6
shell> bin/mysqld –initialize –user=mysql # MySQL 5.7.6 and up
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
shell> chown -R root .
shell> chown -R mysql data mysql-files
shell> bin/mysqld_safe –user=mysql &
shell> cp support-files/mysql.server /etc/init.d/mysql.server
命令如下:
[root@mysql47 bin]# ./mysqld –initialize –basedir=/usr/local/mysql33333 –datadir=/usr/local/mysql33333/data &
会报warning提示信息,可以看一下。显示给出一个root的临时密码,但是后来登录使用的时候不能用。
第五步,./mysql_ssl_rsa_setup –datadir=/usr/local/mysql33333/data
第六步:在mysql33333文件夹下,并配置相关参数,简单配置一下就好。
cp ./support-files/my-default.cnf ./my.cnf
第六步,更改mysql33333文件夹所属。
Chown -R mysql:mysql /usr/local/mysql33333
第七步:利用–skip-grant-tables的方式登录启动数据库服务器
之所以通过这种方式启动,是因为,虽然在初始化的时候,warning里面已经给出了root的临时密码,但是我尝试了一下,正常启动mysql服务器之后,用那个密码登不进去。
第八步,登录服务器,并且修改root密码。
先看版本号:
mysql> select version();
+———–+
| version() |
+———–+
| 5.7.8-rc |
+———–+
1 row in set (0.00 sec)
看mysql.user表
mysql> select * from mysql.user\G
***************** 1. row *****************
Host: localhost
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *D5F86FA8F536F9E81C12E8A993EF5292A90259FB
password_expired: Y
password_last_changed: 2015-08-18 11:11:39
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec)
只有一个root帐号,并且密码已经过期了。
在这里修改密码的时候,要考虑到pasword_expied,设置成N,才可以用。
修改密码:
mysql> update mysql.user set authentication_string=password(‘redhat’), password_expired=’N’ where user=’root’;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
可能感觉这个方法有点怪异,为什么不直接set password=password();
看一下
mysql> set password=password(‘123’);
ERROR 1131 (42000): You are using MySQL as an anonymous user and anonymous users are not allowed to change passwords
答案是不可以,因为mysql.user表已经没有这个字段了。
修改完成之后,用root登录。
mysql> select current_user();
+—————-+
| current_user() |
+—————-+
| root@localhost |
+—————-+
1 row in set (0.00 sec)
登录ok。