1 下载官方Mysql 我这里使用的是 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 版本,下载地址
https://pan.baidu.com/s/1dB4S9dlyrEelFAmW2-sQYQ 提取码 encs
2 用文件上传工具把压缩包上传到自己的服务器,我自己是传到了 /usr/local/apps目录下
3 将压缩包复制到 /usr/local下面
拷贝压缩包
[root@localhost /]# cd /usr/local/apps/
[root@localhost apps]# cp mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz ../
[root@localhost apps]# cd ..
解压
[root@localhost local]# tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
修改文件名
[root@localhost local]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
删除压缩包
[root@localhost local]# rm -rf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
4 创建存放的数据及日志的文件
mkdir -p /xx/yy/zz 递归创建
[root@localhost local]# cd mysql/
[root@localhost mysql]#
[root@localhost mysql]# mkdir data # 在/user/local/mysql 路径下创建用来存放数据的文件
[root@localhost mysql]# mkdir log # 在/user/local/mysql 路径下创建mysql的日志文件
[root@localhost mysql]# mkdir binlog # binlog的日志存放目录
5 创建mysql用户组和用户并修改权限
[root@localhost mysql]# groupadd mysql
[root@localhost mysql]#
[root@localhost mysql]# useradd -r -g mysql mysql
[root@localhost mysql]#
[root@localhost mysql]# chown mysql:mysql -R /usr/local/mysql
6 在/etc 目录下 配置my.cnf
[root@localhost local]# cd /etc/
my.cnf配置如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/log/mysql.err
pid-file=/usr/local/mysql/log/mysql.pid
#character config
character_set_server=utf8mb4 #有表情符号的utf-8
symbolic-links=0
explicit_defaults_for_timestamp=true
log-bin=/usr/local/mysql/binlog/mysql-bin
# 等同于下面三条三个参数来指定,
# log_bin=ON 第一个参数是打开binlog日志
# log_bin_basename=/var/lib/mysql/mysql-bin 第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件
# log_bin_index=/var/lib/mysql/mysql-bin.index 第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
# 注意5.7以及更高版本需要配置本项:(自定义,保证唯一性);
server-id=123454
#binlog格式,有3种statement,row,mixed
binlog-format=ROW
7 初始化数据库 (会得到数据库的初始密码 首次登陆时需要用 tR#HdW::E4tz )
[root@localhost local]# cd /usr/local/mysql/bin/
[root@localhost bin]#
[root@localhost bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
[root@localhost bin]#
[root@localhost bin]#
[root@localhost bin]# cat /usr/local/mysql/log/mysql.err # 查看初始密码
2020-09-14T06:21:44.556788Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-09-14T06:21:44.712057Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-09-14T06:21:44.740854Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-09-14T06:21:44.813600Z 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: 8fc6af94-f652-11ea-8004-000c298268fd.
2020-09-14T06:21:44.815623Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-09-14T06:21:44.819875Z 1 [Note] A temporary password is generated for root@localhost: tR#HdW::E4tz
这里我得到的临时密码为 tR#HdW::E4tz
8 启动mysql数据库服务,修改root密码
[root@localhost init.d]# ll
总用量 52
-rw-r--r--. 1 root root 18281 8月 19 2019 functions
-rwxr-xr-x. 1 root root 10576 9月 14 14:26 mysql
-rwxr-xr-x. 1 root root 4569 8月 19 2019 netconsole
-rwxr-xr-x. 1 root root 7928 8月 19 2019 network
-rw-r--r--. 1 root root 1160 4月 1 09:30 README
1、将服务文件拷贝到init.d下,并重命名为mysqld(mysqld即为启动服务名字)
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list
5 添加软连接(软连接作用参考 https://www.jb51.net/article/34622.htm ),并重启mysql服务
# 第一条软连接好像没用 我自己没有设置
[root@localhost /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
6 启动mysql服务
[root@localhost /]# service mysqld start #注意这里时mysqld 是上面添加的服务名字
Starting MySQL. SUCCESS!
7 修改密码
[root@localhost init.d]# mysql -uroot -p
Enter password: #密码为上面第7步得到的初始密码
初始化数据库
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
9 修改用户权限 可以远程访问连接
通过以下命令,进行远程访问的授权
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES;
开放远程端口
[root@localhost init.d]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost init.d]# firewall-cmd --reload
success
[root@localhost init.d]#
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
10 测试连接