Mysql5.7二进制安装

Linux安装Mysql5.7

一、准备工作

1.配置Yum
[root@mysql opt]# cp -r /run/media/admin/CentOS\ 7\ x86_64/*  /opt/yum

[root@mysql opt]# vi /etc/yum.repos.d/CentOS-Base.repo

[CentOS-Base]
baseurl=file:///opt/yum
gpgcheck=0
enabled=1
2.操作系统依赖包
For MySQL 5.7.19 and later: Support for Non-Uniform Memory Access
(NUMA) has been added to the generic Linux build, which has a dependency
now on the libnuma library; if the library has not been installed on your
system, use you system's package manager to search for and install it (see
the preceding item for some sample commands).

SLES 11: As of MySQL 5.7.19, the Linux Generic tarball package format is
EL6 instead of EL5. As a side effect, the MySQL client bin/mysql needs
libtinfo.so.5.
A workaround is to create a symlink, such as

ln -s libncurses.so.5.6 /lib64/libtinfo.so.5      on 64-bit systems   or
ln-s libncurses.so.5.6 /lib/libtinfo.so.5         on 32-bit systems.

[root@mysql soft]# yum install libaio
[root@mysql soft]# yum install libnuma
3.二进制安装包
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
4.安装步骤
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
5.Mysql目录结构
| Directory       | Contents of Directory                                         |
| --------------- | ------------------------------------------------------------  |
| bin           | [**mysqld**]server, client and utility programs               |
| docs          | MySQL manual in Info format                                   |
| man           | Unix manual pages                                             |
| include       | Include (header) files                                        |
| lib           | Libraries                                                     |
| share         | Error messages, dictionary, and SQL for database installation |
| support-files | Miscellaneous support files                                   |

二、安装

安装前检查:

[root@mysql mysql]# mkdir /data
[root@mysql mysql]# rpm -qa |grep mysql
[root@mysql mysql]# rpm -qa |grep mariadb

磁盘挂载:

[root@mysql soft]# mkfs.xfs  /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
      =                       sectsz=512   attr=2, projid32bit=1
      =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
      =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
      =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@mysql soft]# blkid
/dev/sda1: UUID="28c5912e-d7ae-4c5f-a404-f1806d48ca93" TYPE="xfs"
/dev/sda2: UUID="VczXPR-tZhP-TR58-NYzW-3hsR-F3Qc-TzTaO6" TYPE="LVM2_member"
/dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdb: UUID="804f4903-7d62-4669-b48a-5add1d0d2312" TYPE="xfs"
/dev/mapper/centos-root: UUID="6947bf69-372b-4127-b1c9-287c133c0090" TYPE="xfs"

[root@mysql soft]# vi /etc/fstab

UUID="804f4903-7d62-4669-b48a-5add1d0d2312"  /data    xfs   defaults        0 0

[root@mysql soft]# mount -a 
1.卸载Mariadb
[root@mysql mysql]# rpm -qa |grep mariadb
[root@mysql mysql]# yum remove mariadb-libs-5.5.68-1.el7.x86_64
2.创建用户和组

groupadd -g 600 mysql

useradd -r -g mysql -u 600 -s /bin/false mysql

温馨提示: -r参数指的是创建系统用户,该用户没有登录权限。

[root@mysql ~]# id mysql
uid=600(mysql) gid=600(mysql) groups=600(mysql)

3.解压安装包

[root@mysql soft]# tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

温馨提示:如果tar不支持z选项,则可以使用gunzip命令

gunzip < mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz |tar xvf -

4.创建软件链接

[root@mysql soft]# cd /usr/local/

[root@mysql local]# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql

5.添加PATH环境变量

[root@mysql mysql]# vim /etc/profile

export PATH=/usr/local/mysql/bin:$PATH

温馨提示: 也可以使用sed命令添加

[root@mysql mysql]# sed -i '$a export PATH=/usr/local/mysql/bin:$PATH\n' /etc/profile

[root@mysql mysql]# source /etc/profile

[root@mysql mysql]# tail -2 /etc/profile
export PATH=/usr/local/mysql/bin:$PATH

6.创建数据文件目录

[root@mysql soft]# cd /usr/local/mysql

[root@mysql mysql]# mkdir mysql-files

[root@mysql mysql]# chown mysql:mysql mysql-files
[root@mysql mysql]# chmod 750 mysql-files

7.初如化目录

--initialize生成一个临时密码:

  • 密码12位数字,4种字符组合
  • 密码有效期180天
  • 如果不想使用这种密码复杂策略,可以使用--initialize-insecure
如果初始化报如下错误:

error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

则安装以下包即可:
[root@mysql mysql]# yum install libaio-devel

[root@mysql mysql]# mysqld --initialize --user=mysql
2018-01-10T01:53:32.293392Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-01-10T01:53:32.718329Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-01-10T01:53:32.786439Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-01-10T01:53:32.859312Z 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: 1039d2a7-f5a9-11e7-be37-0800273f185b.
2018-01-10T01:53:32.860393Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-01-10T01:53:32.861180Z 1 [Note] A temporary password is generated for root@localhost: djqWilKg>5t9

也可以初始化时指定Data目录:
[root@mysql ~]# mkdir -p /data/mysql/data

[root@mysql ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data --explicit_defaults_for_timestamp
2021-07-14T15:04:08.596953Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-07-14T15:04:08.617238Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-07-14T15:04:08.684478Z 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: bd581429-e4b4-11eb-8cfb-000c29b39c96.
2021-07-14T15:04:08.686754Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-07-14T15:04:08.689282Z 1 [Note] A temporary password is generated for root@localhost: JY!btpV5tpt_

[root@mysql ~]# ll /data/mysql/data/
total 110628
-rw-r-----. 1 mysql mysql       56 Jul 14 23:04 auto.cnf
-rw-r-----. 1 mysql mysql      419 Jul 14 23:04 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Jul 14 23:04 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Jul 14 23:04 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Jul 14 23:04 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 Jul 14 23:04 mysql
drwxr-x---. 2 mysql mysql     8192 Jul 14 23:04 performance_schema
drwxr-x---. 2 mysql mysql     8192 Jul 14 23:04 sys
8.配置SSL支持
[root@mysql mysql]# mysql_ssl_rsa_setup
Generating a 2048 bit RSA private key
......................................................................+++
......+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
.............................+++
..........+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
...........................+++
...+++
writing new private key to 'client-key.pem'
-----

分配权限:
[root@mysql ~]# cd /data/mysql/data
[root@mysql data]# chown mysql:mysql *.pem
9.配置my.cnf参数文件
Mysql my.cnf:

[root@server01 mysql]# cat > /etc/my.cnf <<EOF

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306

[mysql]
socket=/tmp/mysql.sock

EOF
10.配置启动文件

两种启动方式:

  • sys-v
cp support-files/mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start

service mysqld restart
  • systemd
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
ExecStart= /application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecReload= /etc/init.d/mysqld restart
LimitNOFILE = 5000
[Install]
WantedBy=multi-user.target

EOF

1,创建启动文件 .service
vim /usr/lib/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
Type=forking
PermissionsStartOnly=true
ExecStart= /etc/init.d/mysqld start
ExecStop= /etc/init.d/mysqld stop
ExecReload= /etc/init.d/mysqld restart
LimitNOFILE = 5000
[Install]
WantedBy=multi-user.target

2,重新加载一下服务的配置文件
systemctl daemon-reload
3,开启mysql服务
systemctl  start  mysqld.service
systemctl  start  mysqld
4,关闭mysql服务
systemctl  stop  mysqld.service
systemctl  stop  mysqld
11.Mysql启动

| 启动命令                   | 关闭命令                      |
| -------------------------- | ----------------------------- |
| mysqld --user=mysql &      | mysqladmin -uroot -p shutdown |
| mysqld_safe --user=mysql & | mysqladmin -uroot -p shutdown |
| /etc/init.d/mysql start    | /etc/init.d/mysql stop        |

[root@mysql ~]# mysqld_safe --user=mysql &

判断Mysql是否启动:
netstat -lnp |grep 3306
ps -ef |grep mysql
lsof -i:3306
12.创建root密码

[root@mysql ~]# mysqladmin -uroot -p password '123456'

13.root密码忘记解决方法

--skip-grant-tables #跳过授权表
--skip-networking #跳过远程登录

1.关闭数据库

2.mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

或者修改/etc/my.cnf增加这两个参数

3.登录数据库update mysql.user表

mysql> select user,host,authentication_string from mysql.user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> alter user root@'localhost' identified by '123';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> alter user root@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)

4.关闭数据库

5.重启数据库 

如果修改的my.cnf,则修改root密码后,一定要将my.cnf去掉参数--skip-grant-tables --skip-networking

14.删除test库相关信息

[root@mysql ~]# mysql_secure_installation

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇