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:
$ 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 服务的几个常用操作命令的意义:
启动 MySQL:
$ /usr/local/mysql/support-files/mysql.server start
为了方便使用,将启动脚本 cp
到系统管理软件目录中:
$ cp mysql.server /etc/init.d/mysqld
将 mysqld 添加到 systemd 中:
$ chkconfig --add mysqld
最后,需要提醒大家的是在登录前记得修改原始密码:
$ mysqladmin -uroot -p password NEW_PASS
本来主要介绍了 MySQL 二进制包的安装,对于初学者来说也推荐大家使用 RPM 包进行 Linux 平台下的安装,因为 RPM 包的安装和卸载都很方便,通过简单的命令就可以实现,对于新手来说很友好方便入门。但对于想提高自己或者想更加了解 MySQ L安装过程的同学来说,参考本篇文章的介绍会更好(上手操作一遍效果更好),本文介绍的比较详细,包括作者在安装过程中遇到的一些报错都有展现。看到这里,如果觉得本文对你有帮助记得点赞收藏!
本文来源:www.lxlinux.net/how-to-install-mysql-in-linux-system.html,若引用不当,请联系修改。
1
目录:1、日本站群服务器,日本多IP服务器,哪家性价比最好,便宜的?2、推荐几款国外服务器3、apex日服数据中心选哪个4、新加坡服务器...