MySQL安装 (Linux环境,yum方式)

这是我参与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仓库

image.png 点击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
复制代码

\

注意

  1. 安装时可能会出现类似错误
复制代码

解决方式

只要加上一个--force (强制) 和--nodeps(不查找依赖关系)就可以了

卸载时就不用--force了,只要加入--nodeps就ok了

  1. 安装时可能会出现类似错误
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
复制代码
  1. 安装时可能会出现类似错误
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为%的记录

其他

  1. 数据库目录在 /var/lib/mysql

  2. 配置文件在  /usr/share/mysql

  3. 相关命令在  /usr/bin

  4. 启动脚本在 /etc/rc.d/init.d

  5. 启动失败后日志报错

Can't start server : Bind on unix socket: Permission denied
复制代码

/etc/my.cnf配置的socket位置 ,mysql用户没有权限  

赋予权限 chown -R mysql:mysql ([mysqld]中配置datadir的位置)

  1. 启动失败后日志报错
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
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复制代码

猜你喜欢

转载自juejin.im/post/7036365102928363527