这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战
前言
此文章写于Mysql5.7盛行的时代,学习或者传统项目或老旧项目可以参考
卸载旧或者低版本 Mysql
现在Mysql有多个版本比如mariadb
,请一样去卸载
查找是否有旧或者低版本 Mysql
yum list installed grep mysql*
yum list installed grep mariadb*
复制代码
卸载查找出来的文件 yum remove '查找出来的文件名' (但是如果不是新机器,或者版本合适,文章看到这里就行了)
rpm -qa |grep mysql
rpm -qa |grep mariadb
复制代码
卸载查找出来的文件 rpm -ev '查出来的包名'
删除mysql的开发头文件和库
rm -rf /usr/lib/mysql
rm -rf /usr/include/mysql
rm -rf /var/lib/mysql
rm-rf /etc/my.cnf
复制代码
安装mysql
使用centos默认带的mysql版本
默认显示的都是比较旧版本的
yum list mysql*
复制代码
安装查找出来的 mysql
mysql-devel
mysql-server
三个版本型号相同的文件即可
yum -y install '对应的文件名'
复制代码
安装社区版的mysql
因为是社区的最新版本可能会出现下面glic不支持的错误
获取包含mysql的yum仓库
在这里获取需要的yum仓库

点击
Download
,在新界面No thanks, just start my download.
右键复制地址
安装yum仓库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
复制代码
安装Mysql
执行 yum list mysql-community*
,安装查找出来的mysql-community-server
开头的文件即可 (直接安装mysql-community-server 会关联安装其他两个文件 yum install mysql-community-server.x86_64).
切换不同的版本
新的包会包含旧的包的关系,但是需要修改版本指定最新的版本 yum -y install yum-utils
yum repolist all | grep mysql
yum-config-manager --disable mysql80-community //禁用mysql80-community
yum-config-manager --enable mysql57-community //启用mysql57-community
复制代码
\
注意
- 安装时可能会出现类似错误
复制代码
解决方式
只要加上一个--force (强制) 和--nodeps(不查找依赖关系)就可以了
卸载时就不用--force了,只要加入--nodeps就ok了
- 安装时可能会出现类似错误
Package: mysql-community-libs-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libc.so.6(GLIBC_2.17)(64bit)
复制代码
解决方式 出现此错误的原因是当前文件的安装需要clibc_2.17的支持
你的linux系统不支持此版本
strings /lib64/libc.so.6 |grep GLIBC
查询支持的glibc版本
下载glibc的源码手动编译安装 去www.gnu.org/software/li… 找到你需要的glibc的地址
wget '下载的地址直接下载到linux上'
tar -zxvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build
cd build
../configure --prefix=/opt/glibc (此步报错应该是gcc环境没装)
make -j4
make install
复制代码
- 安装时可能会出现类似错误
Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
复制代码
缺少libstdc++的支持
yum list libstdc++*
安装对用的 libstdc++
安装后的配置
加入开机启动
systemctl enable mysqld
复制代码
启动mysql服务进程
systemctl start mysqld
复制代码
默认密码
5.7在安装mysql的时候会在/var/log/mysqld.log
生成初始密码
2018-03-18T13:13:58.214961Z 1 [Note] A temporary password is generated for root@localhost: r/0SbBmW+1Mu
复制代码
上一句中的"r/0SbBmW+1Mu"就是默认密码,在重置密码mysql_secure_installation
中输入即可
重置密码
执行 mysql_secure_installation
提示输入密码(5.7之前没有初始密码直接回车即可)
set root password
设置root密码 y
回车 两个输入密码
remove anonymous users
删除匿名用户 y
Disallow root login remotely
禁止root远程登录 n
Remove test database and access to it
删除test数据库 随意
Reload privilege tables now
立刻刷新权限 y
忘记密码
如果忘记root密码则在/etc/my.cnf 的[mysqld] 中添加skip-grant-tables
然后重启service mysqld restart
进入mysql 然后修改root密码
测试
1. 启动mysql服务
service mysqld start
或者 /etc/init.d/mysqld start
2. 查看是否已经监听3306端口
netstat -nutlp | grep mysql
3. 登录
mysql -u root -p
回车输入密码
4. 远程访问
如果出现10038错误则是远程服务器的端口没有开放,
如果出现"host xxx is not allowed to connect mysql" 则是连接host为%的用户远程访问权限有问题,需要在本地修改权限
如果没有用户的host为"%",则在数据库user中新增一条host为%的记录
其他
-
数据库目录在
/var/lib/mysql
-
配置文件在
/usr/share/mysql
-
相关命令在
/usr/bin
-
启动脚本在
/etc/rc.d/init.d
-
启动失败后日志报错
Can't start server : Bind on unix socket: Permission denied
复制代码
在/etc/my.cnf
配置的socket位置 ,mysql用户没有权限
赋予权限 chown -R mysql:mysql ([mysqld]中配置datadir的位置)
- 启动失败后日志报错
Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
复制代码
mysql_install_db --user=mysql --datadir=([mysqld]中配置datadir的位置)
结束语
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
如果您喜欢我的文章,可以[关注]+[点赞]+[评论],您的三连是我前进的动力,期待与您共同成长~
作者:ZOUZDC
链接:https://juejin.cn/post/7028963866063306760
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复制代码