mysql: error while loading shared libraries: libtinfo.so.5

14 篇文章 0 订阅
6 篇文章 0 订阅

MySQL安装完整过程

1. 安装过程

  1. 清理历史环境
rpm -qa | grep mariadb
yum remove mariadb-libs -y
  1. 创建用户和组
useradd mysql -s /sbin/nologin
id mysql
  1. 创建相关目录
3.1 创建软件目录
	mkdir -p /usr/local/mysql
3.2 创建数据目录
	mkdir -p /data/mysql/
3.3 创建日志目录
	mkdir -p /binlog/mysql/
  1. 设置权限
chown -R mysql.mysql /usr/local/mysql /data/ /binlog/
  1. 在/usr/local/mysql下上传软件,然后解压
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
  1. 文件名太长,为了访问方便可以做个软链接
ln -s 二进制包 mysql
  1. 设置环境变量
常用的两个目录:/bin、/support-file
		/bin:数据库的一些可执行文件
		/support-file:配置文件
		
		设置环境变量:
		vim /etc/profile
			添加一行:
			export PATH=/usr/local/mysql/bin:$PATH
			退出之后source一下使其生效
		source /etc/profile
		验证: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

2. 接下来,初始化数据库:

1、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.
初始化完成
2、5.6 版本初始化:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
扩展部分:
扩展(初始化方式):
mysqld --initialize:
	1)初始化完成后,会生成一个12位的临时密码(在输出的最后一句),但是必须在使用MySQL之前重置这个密码;
	2)密码管理使用严格模式:3种复杂度以上,8位以上
		
mysqld --initialize-insecure:
	不会有临时密码,可以自己进行设定,并且也没有密码复杂度的要求;

3. 配置文件

简易模版:
cat > /etc/my.cnf << EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
启动脚本:
/usr/local/mysql/support-files/mysql.server start
		
将启动脚本copy到系统管理软件目录中:
cp mysql.server /etc/init.d/mysqld
		
将mysqld添加到systemd中:		
chkconfig --add mysqld
在登陆前修改原始密码:
		
命令行修改:mysqladmin -uroot -p password NEW_PASS
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值