Centos7 下安装mysql5.7.17(glibc版)
一、安装前的检查
1.1 检查 linux 系统版本
[root@localhost ~]# cat /etc/system-release
1.2 检查是否安装了 mysql
1 | [root@localhost ~]# rpm -qa | grep mysql |
若存在 mysql 安装文件,则会显示 mysql安装的版本信息
如:mysql-connector-odbc-5.2.5-6.el7.x86_64
卸载已安装的MySQL,卸载mysql命令,如下:
1 | [root@localhost ~]# rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64 |
将/var/lib/mysql文件夹下的所有文件都删除干净。
细节注意:
检查一下系统是否存在 mariadb 数据库,如果有,一定要卸载掉,否则可能与 mysql 产生冲突。
检查是否安装了 mariadb:
1 2 3 4 5 6 7 | [root@localhost ~]# rpm -qa | grep mariadb 删除 systemctl stop mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64 rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64 rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64 |
三、安装 mysql
3.1 解压安装包,并移动至 mysql 目录下
解压 mysql 的 gz 安装包:
1 2 | [root@localhost apps]# tar -zvxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/mysql /usr/local 目录下创建文件夹存 mysql:[root@localhost ~]# mkdir /usr/local/mysql |
3.2 添加系统用户
添加 mysql 组和 mysql 用户:
1 2 | 添加 mysql 组:[root@localhost ~]# groupadd mysql 添加 mysql 用户:[root@localhost ~]# useradd -r -g mysql mysql |
3.3 安装 mysql
1 2 3 | 进入安装 mysql 软件目录:[root@localhost ~]# cd /usr/local/mysql/ 安装配置文件:[root@localhost mysql]# cp ./support-files/my- default .cnf /etc/my.cnf(提示是否覆盖,输入“ y ”同意) 修改被覆盖后的 my.cnf:[root@localhost mysql]# vim /etc/my.cnf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [mysql] # 设置mysql客户端默认字符集 default -character- set =utf8 socket=/ var /lib/mysql/mysql.sock [mysqld] #skip-name-resolve #设置3306端口 port = 3306 socket=/ var /lib/mysql/mysql.sock # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character- set -server=utf8 # 创建新表时将使用的默认存储引擎 default -storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M #初始时使用无密码登陆mysql #skip-grant-tables |
1 2 3 4 5 6 | 创建 data 文件夹:[root@localhost mysql]# mkdir ./data 修改当前目录拥有者为 mysql 用户:[root@localhost mysql]# chown -R mysql:mysql ./ 初始化 mysqld:[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 启动 mysqld:[root@localhost mysql]# service mysqld start |
如正常,则安装成功
如报错:
1 2 3 | # 2018-09-08T01:42:11.940420Z mysqld_safe Logging to '/var/log/mysqld/my57_3307.log'. 2018-09-08T01:42:11.949380Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists. [1]+ Exit 1 /usr/local/mysql57/bin/mysqld_safe --defaults-file=/dbdata/mysql/my57_3307/my57_3307.cnf --ledir=/usr/local/mysql57/bin |
解决办法:
1、编辑mysql安装目录bin下的mysqld_safe文件
1 | [root@test2 ~]# vim /usr/local/mysql/bin/mysqld_safe |
2、找到下面的代码处
1 2 3 4 5 6 7 8 9 10 11 | # Check that directory for $safe_mysql_unix_port exists mysql_unix_port_dir=`dirname $safe_mysql_unix_port` if [ ! -d $mysql_unix_port_dir ] then mkdir $mysql_unix_port_dir chown $user $mysql_unix_port_dir chmod 755 $mysql_unix_port_dir # 这里是5.7版本原始的配置:修改为上面三行 # log_error "Directory '$mysql_unix_port_dir' for UNIX socket file don't exists." # exit 1 Fi |
保存后,重新启动成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)