下载安装包
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1 | wget https: //cdn .mysql.com //Downloads/MySQL-5 .7 /mysql-5 .7.43-linux-glibc2.12-x86_64. tar .gz |
安装前检查是否自带安装 MySQL
1 2 3 4 5 6 7 8 9 10 | rpm -qa | grep mysql #如果有卸载 rpm -e mysqlXXX // 普通删除模式 rpm -e --nodeps mysqlXXX // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 #然后再检查否存在 mariadb 数据库,如果有,同样卸载即可 rpm -qa | grep mariadb 注:我这里是存在的,网上好多都是让卸载的,我是用普通用户安装的,我们不妨试试不卸载就安装,有问题再搞呗,所以选择不卸载 mariadb安装 |
解压安装包&配置
1 2 3 4 5 6 7 8 9 | tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64. tar .gz -C data1 /mysql #添加环境变量 export MYSQL_HOME=data1 /mysql source ~/.bashrc #创建目录 mkdir $MYSQL_HOME /data $MYSQL_HOME /log |
创建/data1/mysql/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 24 25 26 27 28 | [mysqld] # 这步是为了跳过root的密码验证,如果是你个人使用的话,其实不用密码更方便 #skip-name-resolve #skip-grant-tables #设置3306端口 port = 3306 #这个不需要自己创建,把路径指定好就行 socket= /data1/mysql/mysql .sock # 设置mysql的安装目录,我用的是刚才bashrc里设置的MYSQL_HOME # 特别注意,不要直接写$MYSQL_HOME,要打完整的路径,不然mysqld启动时会有奇怪的错误 basedir= /data1/mysql # 设置mysql数据库的数据的存放目录, 这里就是刚才我们创建的data目录的路径 datadir= /data1/mysql/data log-error= /data1/mysql/log/mysql .log pid- file = /data1/mysql/mysql .pid # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character- set -server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M #plugin所在目录 这步很重要,这个得手动指定,不然会报错。该目录不需要手动创建,在$MYSQL_HOME/lib下面有 plugin_dir= /data1/mysql/lib/plugin |
初始化mysql服务以及创建数据库
1 2 3 4 5 6 | 1.初始化 $MYSQL_HOME /bin/mysqld --initialize --user=user --basedir=$MYSQL_HOME/ --datadir=$MYSQL_HOME /data/ 2.初始化之后,进日志目录,查看日志找临时密码 cat /data1/mysql/log/mysql .log A temporary password is generated for root@localhost: xxxx |
启动mysql
1 2 3 | $MYSQL_HOME /bin/mysqld --defaults- file =$MYSQL_HOME /my .cnf --user=user ps -ef| grep mysql #启动之后查看进程 ps -ef| grep mysql| grep - v grep | awk '{print $2}' | xargs kill -9 #杀死mysql进程 |
mysql5.7 密码过期问题
报错:
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
翻译:错误1862(HY000):你的密码已经过期。登录必须改变它使用一个客户端,支持过期的密码。
解决方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1、 用忽略授权表的方法进入mysql vi /data1/mysql/my .cnf [mysqld] skip-grant-tables 重启mysql 2、进入mysql,查看root用户的详细信息 # mysql -u root -p > use mysql 3、把password_expired 改成不过期 > update user set password_expired= "N" where user= "root" ; > flush privileges; > quit 4、把 /data1/mysql/my .cnf 的 skip-grant-tables 这行注释掉,重启mysql |
分类:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统