**
SUSE12安装MySQL8.0.26需要升级gcc版本
**
目录
一、升级gcc版本
1)、问题现象
2)、问题原因
3). 解决更改配置文件
二、安装MySQL
三、初始化配置MySQL
**
安装步骤
**
说明:
安装系统时,安装软件勾选开发软件GCC,若安装操作系统时,没有安装,使用命令在线安装
1、安装gcc
2、在线安装g++输入命令zypper install gcc-c++
一、升级gcc版本
gcc-11.2.0下载链接:https://pan.baidu.com/s/1UHWaxscCSPPLbweJb-JX8g?pwd=ox6g
提取码:ox6g
1、检查当前系统的动态库,输入命令strings /usr/lib64/libstdc++.so.6 | grep GLIBC
2、查看当前动态库的位置和版本
4、上传安装包,输入解压tar -zxvf gcc-11.2.0.tar.gz
5、下载各项依赖,输入cd gcc-11.2.0下载到本地
输入./contrib/download_prerequisites
安装下载的依赖参考链接
https://blog.csdn.net/qq_31868891/article/details/128838888
配置的时候如果显示缺少依赖,则安装,没有显示缺少依赖,忽略这些步骤。
1、输入tar -xvf gmp-6.1.0.tar.bz2
2、cd gmp-6.1.0/
3、./configure
4、make
5、make install
安装
1、输入tar -xvf mpfr-3.1.6.tar.bz2
2、cd mpfr-3.1.6/
3、./configure
4、make
5、make install
安装
1、输入tar -xvf mpc-1.0.3.tar.gz
2、输入cd mpc-1.0.3/
3、./configure
4、make
5、make install
安装
1、输入tar -xvf isl-0.18.tar.bz2
2、cd isl-0.18/
3、./configure
4、make
5、输入make install
配置gcc
6、在gcc-11.2.0目录创建编译目录mkdir build
7、输入cd build
8、输入…/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
9、输入make编译
1)、问题现象
输入make时,显示error while loading shared libraries: xxx.so: cannot open shared object file: No such file or directory
2)、问题原因
可执行程序执行时找不到依赖的动态库,要么是没有这个so文件,要么是文件的路径没有指对
注:
编译时报错,参考
error while loading shared libraries xxx.so,cannot open shared object file
参考链接
https://blog.csdn.net/weixin_42310458/article/details/125180410
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定–prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。
在明确已经安装该库的情况下出现上述错误,可能是这个库目录并没有加入到该环境变量中,解决办法如下:
3). 解决更改配置文件
- 一般安装目录在:/usr/local/lib
配置文件在:/etc/ld.so.conf文件中
将该目录加入到共享库的配置文件中 - 将动态库文件加入配置:执行vi /etc/ld.so.conf在include ld.so.conf.d/*.conf下方增加/usr/local/lib
- 保存后,在命令行终端执行/sbin/ldconfig -v
- 输入ldconfig
其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache
10,输入make install安装
11、查看版本输入gcc –version
12、查看链接的目录输入ll /usr/lib64/libstdc++.so.6
可以看到,目前其连接到 libstdc++.so.6.0.25
13、查找GCC编译时生成的最新的动态库位置,输入find / -name “libstdc++.so*”
最后面的 /usr/local/lib64/libstdc++.so.6.0.29(找最新版) 就是我们最终需要的(其他几个都是软链接,链接到这个)
14、把 /usr/lib64/libstdc++.so.6 重新链接到 /usr/local/lib64/libstdc++.so.6.0.29移除原先的链接,输入unlink /usr/lib64/libstdc++.so.6
15、创建so.6.0.29链接,输入ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
16、再次检查动态库,输入strings /usr/lib64/libstdc++.so.6 | grep GLIBC
二、安装MySQL
下载地址链接:https://pan.baidu.com/s/1zvDJZXtimlsMYG8-L0bXqw?pwd=vfyr
提取码:vfyr
1、 切换opt输入mkdir mysql 创建mkdir mysql
2、 上传安装包到/opt/mysql目录
3、 输入tar -xvf mysql-8.0.26-1.sles12.x86_64.rpm-bundle.tar -C mysql/解压到/opt/mysql目录
4、 输入rpm -ivh mysql-community-common-8.0.26-1.sles12.x86_64.rpm
5、 输入rpm -ivh mysql-community-client-plugins-8.0.26-1.sles12.x86_64.rpm
6、 输入rpm -ivh mysql-community-libs-8.0.26-1.sles12.x86_64.rpm
7、 输入rpm -ivh mysql-community-client-8.0.26-1.sles12.x86_64.rpm
8、 输入rpm -ivh mysql-community-server-8.0.26-1.sles12.x86_64.rpm
三、初始化配置MySQL
1、输入rpm -qa|grep mysql检查安装的MySQL包
2、设置忽略区分大小写,输入vim /etc/my.cnf 添加一行lower_case_table_names=1
3、输入mysqld --initialize --user=mysql如果选择–initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码;
4、查看初始化设置的密码,在cat /var/log/mysql/mysqld.log文件中%O-VyhsOk2Y/
5、输入systemctl start mysql.service运行服务
6、输入查看服务状态systemctl status mysql.service
7、输入mysql -uroot -p 用自动生产的密码首次登录
8、设置密码执行命令:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Password,123’;
9.设置root用户远程登录create user ‘root’@‘%’ identified by ‘Password,123’;
10、输入grant all privileges on . to ‘root’@‘%’;
11、输入use mysql;
12、输入ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘Password,123’;
13、输入flush privileges;
14、输入命令quit;退出
15、设置mysql_native_password加密,备份/etc/my.cnf输入cp /etc/my.cnf /tmp 输入vim /etc/my.cnf取消注释
16、用navicat客户端连接,Navicat打开已连接MySQL自带的数据库列表,鼠标双击“mysql”库使其高亮显示
17、输入show variables like ‘default_authentication_plugin’;查看加密方式