暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

A.002.3Linux下二进制安装MySQL5.7.X

数据库BOSS 2021-04-16
1123

Linux下二进制安装Mysql

    • 1.环境准备

    • 2.上传文件并建相关目录

    • 3.创建软链接

    • 4.创建用户并赋权限

    • 5.修改环境变量

    • 6.初始化数据库

    • 7.启动服务

    • 8.客户端访问

    • 9.如何使用systemctl启停服务

    • 10.卸载MySQL

Linux下二进制安装Mysql

访问官方网站[1],选择合适的版本进行下载安装。

链接:https://pan.baidu.com/s/1cr3QiXHfZf7z_7oGIu0gHQ 提取码:6ow7 (版本:mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz)

1.环境准备

准备操作系统:CentOS Linux release 7.8.2003 (Core)

MySQL安装包:mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

MySQL生产环境下规划:

  • 系统盘:安装操作系统
  • 数据盘:安装数据库(以1块数据盘为例,实际中存在存储服务器及多路径配置,在此省略)
  • 数据盘业务用途,建多级目录以便区分

有些依赖包需要提前安装好:yun install libaio -y

2.上传文件并建相关目录

在数据盘里建相关的目录,我们在实践中如下规划:

  • /jssdb:在根目录下建立jssdb目录,用于挂在数据盘。
  • /jssdb/mysql/data/3306/data :定义存放某1个数据库文件
  • /jssdb/mysql/log/3306:用于存放某一个MySQL的相关日志
  • /jssdb/soft:存放用到的软件
  • /jssdb/backup:存放数据库备份文件
[root@jssdb01 ~]# mkdir -p /jssdb/mysql/data/3306/data
[root@jssdb01 ~]# mkdir -p /jssdb/mysql/log/3306
[root@jssdb01 ~]# mkdir -p /jssdb/soft
[root@jssdb01 ~]# mkdir -p /jssdb/backup

复制

上传到/jssdb/soft下,并解压缩到/jssdb/mysql下:

[root@jssdb01 soft]# ls
mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
[root@jssdb01 soft]# tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /jssdb/mysql/
[root@jssdb01 soft]# cd /jssdb/mysql/
[root@jssdb01 mysql]# ls
data  mysql-5.7.32-linux-glibc2.12-x86_64 log

复制

3.创建软链接

#不修改原来的配置
[root@jssdb01 mysql]# ln -s mysql-5.7.32-linux-glibc2.12-x86_64 mysql
[root@jssdb01 mysql]# ls -l
总用量 0
drwxr-xr-x 2 root root   6 1月  11 12:39 data
lrwxrwxrwx 1 root root  35 1月  11 14:38 mysql -> mysql-5.7.32-linux-glibc2.12-x86_64
drwxr-xr-x 9 root root 129 1月  11 12:47 mysql-5.7.32-linux-glibc2.12-x86_64
[root@jssdb01 mysql]# cd mysql
[root@jssdb01 mysql]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@jssdb01 mysql]# cd bin/
[root@jssdb01 bin]# ls
innochecksum       mysqladmin                  mysqld_multi      mysqlpump                  mysqlxtest
lz4_decompress     mysqlbinlog                 mysqld_safe       mysql_secure_installation  perror
myisamchk          mysqlcheck                  mysqldump         mysqlshow                  replace
myisam_ftdump      mysql_client_test_embedded  mysqldumpslow     mysqlslap                  resolveip
myisamlog          mysql_config                mysql_embedded    mysql_ssl_rsa_setup        resolve_stack_dump
myisampack         mysql_config_editor         mysqlimport       mysqltest_embedded         zlib_decompress
my_print_defaults  mysqld                      mysql_install_db  mysql_tzinfo_to_sql
mysql              mysqld-debug                mysql_plugin      mysql_upgrade

复制

4.创建用户并赋权限

[root@jssdb01 ~]# groupadd mysql
[root@jssdb01 ~]# useradd -r -g mysql -s /sbin/nologin mysql
[root@jssdb01 ~]# cat /etc/passwd|grep mysql
mysql:x:997:1001::/home/mysql:/sbin/nologin
[root@jssdb01 ~]# chown -R mysql:mysql /jssdb/mysql

复制

5.修改环境变量

[root@jssdb01 ~]# vi ~/.bash_profile 
PATH=$PATH:/jssdb/mysql/mysql/bin:$HOME/bin
[root@jssdb01 ~]# which mysql
/jssdb/mysql/mysql/bin/mysql
[root@jssdb01 ~]# mysql --version
mysql  Ver 14.14 Distrib 5.7.32, for linux-glibc2.12 (x86_64) using  EditLine wrapper

复制

6.初始化数据库

  • 准备my.cnf文件,j将其放在/jssdb/mysql/data/3306下
  • 初始化之前确保权限(chown -R mysql:mysql jssdb/mysql)
[root@jssdb01 data]# mysqld --defaults-file=/jssdb/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/jssdb/mysql/mysql --datadir=/jssdb/mysql/data/3306/data

复制

7.启动服务

[root@jssdb01 data]# /jssdb/mysql/mysql/bin/mysqld_safe --defaults-file=/jssdb/mysql/data/3306/my.cnf --user=mysql&
[root@jssdb01 data]# ps -ef |grep mysql
root       8803   8640  0 17:27 pts/4    00:00:00 /bin/sh /jssdb/mysql/mysql/bin/mysqld_safe --defaults-file=/jssdb/mysql/data/3306/my.cnf --user=mysql
mysql      9421   8803 13 17:27 pts/4    00:00:01 /jssdb/mysql/mysql/bin/mysqld --defaults-file=/jssdb/mysql/data/3306/my.cnf --basedir=/jssdb/mysql/mysql/ --datadir=/jssdb/mysql/data/3306/data --plugin-dir=/jssdb/mysql/mysql//lib/plugin --user=mysql --log-error=/jssdb/mysql/log/3306/jssdb-error.err --pid-file=/jssdb/mysql/data/3306/mysql.pid --socket=/jssdb/mysql/data/3306/mysql.sock --port=3306
root       9453   8640  0 17:27 pts/4    00:00:00 grep --color=auto mysql
[root@jssdb01 data]

复制

查看日志是否有报错:

[root@jssdb01 3306]# pwd
/jssdb/mysql/log/3306
[root@jssdb01 3306]# tail -1000f jssdb-error.err 

复制

没有报错则启动正常。

8.客户端访问

查看启动日志,获得默认的初始密码:6Vd%:krC-uwQ

[root@jssdb01 3306]# tail -1000f jssdb-error.err |grep password          
2021-01-11T09:22:23.775975Z 1 [Note] A temporary password is generated for root@localhost: 6Vd%:krC-uwQ
[root@jssdb01 data]# mysql -uroot -hlocalhost -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@jssdb01 3306]# ln -s /jssdb/mysql/data/3306/mysql.sock /tmp/
[root@jssdb01 3306]# mysql -uroot -hlocalhost -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32-log
Copyright (c) 2000, 2020, 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> set password=password('
Jssdb123.23');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.32-log |
+------------+
1 row in set (0.00 sec)
mysql> 

复制

9.如何使用systemctl启停服务

  • 修改/jssdb/mysql/mysql/support-files/mysql.server文件

关注公众号:数据库BOSS,回复A0023

  • 在/usr/lib/systemd/system中添加 mysqld.service

关注公众号:数据库BOSS,回复A0023

[root@jssdb01 ~]# systemctl  start mysqld
[root@jssdb01 ~]# ps -ef |grep mysql
mysql     11731      1  0 19:16 ?        00:00:00 /bin/sh /jssdb/mysql/mysql//bin/mysqld_safe --defaults-file=/jssdb/mysql/data/3306/my.cnf --datadir=/jssdb/mysql/data/3306/data --pid-file=/jssdb/mysql/data/3306/mysql.pid
mysql     12369  11731 14 19:16 ?        00:00:01 /jssdb/mysql/mysql/bin/mysqld --defaults-file=/jssdb/mysql/data/3306/my.cnf --basedir=/jssdb/mysql/mysql/ --datadir=/jssdb/mysql/data/3306/data --plugin-dir=/jssdb/mysql/mysql//lib/plugin --log-error=/jssdb/mysql/log/3306/jssdb-error.err --pid-file=/jssdb/mysql/data/3306/mysql.pid --socket=/jssdb/mysql/data/3306/mysql.sock --port=3306
root      12404   8640  0 19:16 pts/4    00:00:00 grep --color=auto mysql
[root@jssdb01 ~]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

复制

10.卸载MySQL

  • 取消开机启动
  • 停止mysql服务
  • 删除MySQL安装过程中创建的目录

参考资料

[1]

官方网站: https://dev.mysql.com/downloads/mysql/


文章转载自数据库BOSS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论