1.软文推荐

2.软文推荐

3.软文推荐

基于这种现象,本文详细介绍了 MySQL 安装的完成过程,小伙伴们看完记得收藏哦!(^_^)

本文安装的版本为 mysql-8.0.20 ,其他版本的安装也类似,但是可能在一些细节上有所不同。主要在于其它版本的 MySQL 配置文件目录位置和结构可能有所改变,使用此说明可能会出现找不到配置我呢见或者配置后不生效的情况。另外需要注意的是在安装过程中务必保证文件路径的前后统一,否则会出现不可预期的结构,如果不熟练,可以完全使用文中的命令进行操作。

一、安装 MySQL 数据库

清理历史环境,为了避免对后续安装产生影响,所以我们先要清除一下环境,把之前安装的一些包全部移除

$ rpm -qa | grep mariadb
$ yum remove mariadb-libs -y

创建用户和组

$ useradd mysql -s /sbin/nologin
$ id mysql

创建相关目录

3.1 创建软件目录
 $ mkdir -p /usr/local/mysql
3.2 创建数据目录
 $ mkdir -p /data/mysql/
3.3 创建日志目录
 $ mkdir -p /binlog/mysql/

设置权限

$ chown -R mysql.mysql /usr/local/mysql /data/ /binlog/

在 /usr/local/mysql 下上传软件,然后解压,MySQL官网:https://dev.mysql.com

$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
$ tar xf  mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

文件名太长,为了访问方便可以做个软链接

$ ln -s 二进制包 mysql

设置环境变量

这里需要提到两个比较常用的目录 /bin/support-file:

/bin:数据库的一些可执行文件
/support-file:配置文件
$ vim /etc/profile
然后在末尾添加:export PATH=/usr/local/mysql/bin:$PATH

退出之后 source 使其生效
source /etc/profile

可以通过查看 MySQL 版本来验证
$ mysql -V

在验证版本时出现以下报错:

[root@VM-0-3-centos ~]$ mysql --version
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

看报错是因为缺少libtinfo.so.5,可以进入到/usr/local/mysql/bin目录下,使用 ldd mysql 看下mysql依赖的库文件:
[root@VM-0-3-centos bin]$ ldd mysql
linux-vdso.so.1 (0x00007ffea0540000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2b2d74e000)
librt.so.1 => /lib64/librt.so.1 (0x00007f2b2d545000)
libcrypto.so.1.1 => /usr/local/mysql-8.0.20-linux-glibc2.12-x86_64/bin/./../lib/private/libcrypto.so.1.1 (0x00007f2b2d098000)
libssl.so.1.1 => /usr/local/mysql-8.0.20-linux-glibc2.12-x86_64/bin/./../lib/private/libssl.so.1.1 (0x00007f2b2ce09000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2b2cc05000)
libtinfo.so.5 => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2b2c870000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2b2c4ee000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2b2c2d6000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2b2bf14000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2b2d96e000)

根据输出结果可以看到 not found libtinfo.so.5

解决的方法就是找一个完整的 libtinfo.so.5 库文件拷贝到这台机器上
[root@VM-16-90-centos ~]$ scp /usr/lib64/libtinfo.so.5 150.109.94.242:/root/
The authenticity of host '150.109.94.242 (150.109.94.242)' can't be established.
ECDSA key fingerprint is SHA256:cvHf/KdtbchCmajgVyG7YZqaHxtCHUrJnk114X3wVso.
ECDSA key fingerprint is MD5:b4:71:ec:b0:b1:c4:95:2b:ee:05:ff:2b:39:2b:03:73.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '
150.109.94.242' (ECDSA) to the list of known hosts.
root@150.109.94.242'
s password: 
libtinfo.so.5                                                                                                                                         100%  170KB 170.5KB/s 00:01 

再回到VM-0-3-centos这台机器:
[root@VM-0-3-centos ~]$ mv libtinfo.so.5 /usr/lib64/
[root@VM-0-3-centos ~]$ mysql --version
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

至此,报错解决,可以查看 version
二、初始化数据库

需要注意的是 5.6 版本的数据库初始化跟 5.7 版本及以上的数据库初始化是不同的,演示分别如下:

5.6 版本初始化:

$ /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

5.7 版本初始化:

$ mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

执行后可能会报错:mysqld: error while loading shared libraries libaio.so.1:cannot open shared object file:No such file or directory

解决方法:yum install -y  libaio-devel

还有可能报错:mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
可以按照上述的方法去其他机器拷贝,还可以通过以下方式解决:
$ yum install -y install numactl
[root@VM-0-3-centos mysql]$ mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
2020-08-30T09:41:01.597602Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.20-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 12859
2020-08-30T09:41:01.614573Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-08-30T09:41:03.778854Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-08-30T09:41:05.983597Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
初始化完成!!!

扩展部分:

mysqld –initialize:

1)初始化完成后,会生成一个12位的临时密码(在输出的最后一句),但是必须在使用MySQL之前重置这个密码;
2)密码管理使用严格模式:3种复杂度以上,8位以上

mysqld –initialize-insecure:
不会有临时密码,可以自己进行设定,并且也没有密码复杂度的要求;

三、简易配置文件

这里为大家提供一个简单的 MySQL 配置文件,该配置文件主要由两部分组成即标签和配置参数。

cat > /etc/my.cnf [mysqld]      # 服务器端标签
user=mysql      # 负责数据库管理用户
basedir=/usr/local/mysql  # 软件安装位置
datadir=/data/mysql    # 数据的存放节点
server_id=6      # 标识节点的唯一编号(主从有用)
port=3306      # 端口号
socket=/tmp/mysql.sock   # 套接字文件
[mysql]       # 客户端标签
socket=/tmp/mysql.sock   # mysql登录时默认读取的socket文件位置
EOF

配置文件写好之后,MySQL 安装差不多就接近尾声了,之后就只剩下启动 MySQL 啦;启动脚本:

MySQL service options:
Usage: mysql.server  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]

这里需要介绍 MySQL 服务的几个常用操作命令的意义:

start:启动 MySQL 服务
stop:停止 MySQL 服务
restart:重启 MySQL 服务
status:查看 MySQL 服务状态

启动 MySQL:

$ /usr/local/mysql/support-files/mysql.server start

为了方便使用,将启动脚本 cp 到系统管理软件目录中:

$ cp mysql.server /etc/init.d/mysqld

将 mysqld 添加到 systemd 中:

$ chkconfig --add mysqld
image-20201110224733349

最后,需要提醒大家的是在登录前记得修改原始密码:

$ mysqladmin -uroot -p password NEW_PASS

本来主要介绍了 MySQL 二进制包的安装,对于初学者来说也推荐大家使用 RPM 包进行 Linux 平台下的安装,因为 RPM 包的安装和卸载都很方便,通过简单的命令就可以实现,对于新手来说很友好方便入门。但对于想提高自己或者想更加了解 MySQ L安装过程的同学来说,参考本篇文章的介绍会更好(上手操作一遍效果更好),本文介绍的比较详细,包括作者在安装过程中遇到的一些报错都有展现。看到这里,如果觉得本文对你有帮助记得点赞收藏!

本文来源:www.lxlinux.net/how-to-install-mysql-in-linux-system.html,若引用不当,请联系修改。

相关文章 8

1

日本CN2服务器(美国cn2服务器) 2分钟前

目录:1、日本站群服务器,日本多IP服务器,哪家性价比最好,便宜的?2、推荐几款国外服务器3、apex日服数据中心选哪个4、新加坡服务器...

2

Linux系统shell脚本基础教程 4分钟前

在Linux系统中shell脚本也像解释器一样,但它通常用于调用外部已编译的程序。然后,它会捕获输出结果、退出代码并根据情况进行处理,下...

4

云服务器挂淘宝店(云服务器淘宝无法上架) 8分钟前

目录:1、服务器挂淘宝店铺方法2、淘宝店为什么要挂云服务器3、挂千牛用什么服务器做店群?4、淘宝店铺挂主账号需要什么样的服务器...

5

Linux中通过脚本对日志定时压缩备份 9分钟前

本篇文章重点为大家讲解一下Linux中通过脚本对日志定时压缩备份具体方法,有需要的小伙伴可以参考一下。 背景 系统中安装了前置机服务...

6

MySQL 规范 10分钟前

下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家在参考时,根据自己公司的情况来权衡。...

7

构建MySQL高性能表 12分钟前

良好的逻辑设计和物理设计是高性能的基石, 应该根据系统将要执行的查询语句来设计schema, 这往往需要权衡各种因素。 一、选择优化的数...

8

朔州vps主机(国内vps主机) 14分钟前

目录:1、VPS、虚拟机、云主机,这三个到底有什么区别?2、云主机和VPS有什么区别?3、VPS、虚拟机器、云主机,这三个到底有什么区别?...