cnetos7下mysql-8.0.20安装

1、下载安装包

进入官网(https://dev.mysql.com/downloads/mysql/)下载指定版本的mysql安装包。

这里根据系统版本下载的是mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz压缩文件包。

2、解压压缩文件

1 [developer@iZuf6ai62xce7yu53epv2jZ soft]$ xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
2 [developer@iZuf6ai62xce7yu53epv2jZ soft]$ tar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar

然后将解压后的文件夹移动到指定的目录下:

1 [developer@iZuf6ai62xce7yu53epv2jZ soft]$ sudo mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql-8.0.20
2 [developer@iZuf6ai62xce7yu53epv2jZ soft]$ cd /usr/local/mysql-8.0.20/
3 [developer@iZuf6ai62xce7yu53epv2jZ soft]$ sudo mkdir log

 3、初始化mysql

在初始化前先创建mysql的独立用户,并创建初始化配置文件。

1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo useradd -M -s /sbin/nologin mysql
2 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo chown -R mysql:mysql /usr/local/mysql-8.0.20/
3 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ vim /etc/my.cnf

然后在my.cnf中添加内容:

 1 #dvice on how to change settings please see
 2 # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
 3 [mysqld]
 4 #
 5 # Remove leading # and set to the amount of RAM for the most important data
 6 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
 7 # innodb_buffer_pool_size = 128M
 8 #
 9 # Remove leading # to turn on a very important data integrity option: logging
10 # changes to the binary log between backups.
11 # log_bin
12 #
13 # Remove leading # to set options mainly useful for reporting servers.
14 # The server defaults are faster for transactions and fast SELECTs.
15 # Adjust sizes as needed, experiment to find the optimal values.
16 # join_buffer_size = 128M
17 # sort_buffer_size = 2M
18 # read_rnd_buffer_size = 2M
19 port=3306
20 datadir=/usr/local/mysql-8.0.20/data
21 #socket=/data/mysql/mysql.sock
22 
23 # Disabling symbolic-links is recommended to prevent assorted security risks
24 #symbolic-links=0
25 
26 log-error=/usr/local/mysql-8.0.20/log/error.log
27 pid-file=/usr/local/mysql-8.0.20/log/mysqld.pid
28 
29 # 忘记密码后设置登录不需要密码
30 #skip-grant-tables
31 default-authentication-plugin=mysql_native_password
32 character_set_server=utf8mb4
33 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
34 
35 # 忽略表名大小写。0:表名存储为给定的大小和比较是区分大小写的 1: 表名存储在磁盘是小写的,但是比较的时候是不区分大小写 2: 表名存储为给定的大小写但是比较的时候是小写的
36 lower_case_table_names=1
37 
38 
39 log-bin-trust-function-creators=1
40  
41 # 开启慢查询日志
42 #log-bin=mysql-bin
43 slow_query_log=on
44 slow_query_log_file=/usr/local/mysql-8.0.20/log/slow_query.log
45 long_query_time=10
46 
47 max_connections=10000
48 interactive_timeout = 500
49 wait_timeout = 300
50 
51 [client]
52 default-character-set = utf8mb4

保存退出文件编辑。

 执行初始化操作:

1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0.20/ --datadir=/usr/local/mysql-8.0.20/data/  --initialize

初始化操作完成后,通过日志查看初始化时的密码:

1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo cat log/error.log
2 2020-06-19T02:25:05.443998Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.20/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 17882
3 2020-06-19T02:25:05.450425Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
4 2020-06-19T02:25:07.131128Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
5 2020-06-19T02:25:08.071779Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q4K1uzeUSw?!

4、配置mysql服务

首先将mysql添加到环境变量,这样可以在磁盘任何地方进行调用mysql命令:

1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo vim /etc/profile
2 # 在文件末尾处进行添加
3 PATH=$PATH:/usr/local/mysql-8.0.20/bin
4 export PATH
5 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ source /etc/profile

配置mysql服务:

 1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo vim /usr/lib/systemd/system/mysqld.service
 2 # 在文件中进行添加
 3 [Unit]
 4 Description=MySQL Server
 5 Documentation=man:mysqld(8)
 6 Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
 7 After=network.target
 8 After=syslog.target
 9 
10 [Install]
11 WantedBy=multi-user.target
12 [Service]
13 User=mysql
14 Group=mysql
15 ExecStart=/usr/local/mysql-8.0.20/bin/mysqld
16 LimitNOFILE = 65536
17 LimitNPROC = 65536
18 
19 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl daemon-reload

测试服务是否正确配置:

 1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl start mysqld
 2 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl status mysqld
 3 ● mysqld.service - MySQL Server
 4    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
 5    Active: active (running) since Fri 2020-06-19 10:34:57 CST; 4s ago
 6      Docs: man:mysqld(8)
 7            http://dev.mysql.com/doc/refman/en/using-systemd.html
 8  Main PID: 18129 (mysqld)
 9     Tasks: 39 (limit: 26213)
10    Memory: 332.4M
11    CGroup: /system.slice/mysqld.service
12            └─18129 /usr/local/mysql-8.0.20/bin/mysqld
13 
14 Jun 19 10:34:57 iZuf6ai62xce7yu53epv2jZ systemd[1]: Started MySQL Server.
15 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl stop mysqld
16 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl restart mysqld
17 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ ps -ef|grep mysql
18 mysql    18184     1  9 10:36 ?        00:00:00 /usr/local/mysql-8.0.20/bin/mysqld

将启动,查看状态,关闭,重启命令,查看进程进行调用后,可见服务正常配置。

设置mysql开机自启动:

1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ sudo systemctl enable mysqld
2 Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.

5、修改mysql初始密码

mysql的初始密码必须进行修改,否则无法进行其他操作。登录mysql修改密码,初始密码即为上面日志文件中的密码:

 1 [developer@iZuf6ai62xce7yu53epv2jZ mysql-8.0.20]$ mysql -uroot -p
 2 Enter password:
 3 Welcome to the MySQL monitor.  Commands end with ; or \g.
 4 Your MySQL connection id is 8
 5 Server version: 8.0.20
 6 
 7 Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 8 
 9 Oracle is a registered trademark of Oracle Corporation and/or its
10 affiliates. Other names may be trademarks of their respective
11 owners.
12 
13 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
14 
15 mysql> ALTER USER root@'localhost' IDENTIFIED  BY '123456';
16 Query OK, 0 rows affected (0.01 sec)
17 
18 mysql> flush privileges;
19 Query OK, 0 rows affected (0.01 sec)

 

posted @ 2020-06-19 10:58  AI程序  阅读(326)  评论(0)    收藏  举报