ubuntu18 安装mysql 5.7/5.6
新来了个ubantu服务器,准备压测一番,先部署一波软件呗
操作系统 Ubuntu 18.04.4 LTS (GNU/Linux 4.4.189 aarch64) ,注意是arm64
1.安装mysql 5.7(参考https://zhuanlan.zhihu.com/p/64080934)
sudo apt update
#默认安装了mysql 5.7
sudo apt install mysql-server -y
#查看最终安装结果
sudo apt list --installed |grep mysql 或者 sudo dpkg -l |grep mysql
sudo service mysql status
2.配置 mysql 5.7
【设置密码】
#查看默认密码
cat /etc/mysql/debian.cnf ,可以看到user和password
使用该账号密码登录后,再修改root账号密码
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('xxxxxxxxx') where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxxxxxx' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON*.*TO'root'@'locahost' IDENTIFIED BY 'xxxxxxxxx' WITH GRANT OPTION;
mysql> flush privileges;
#检测新密码
本机连接mysql,成功;
使用其他机器连接mysql,失败:排查发现端口3306不通
netstat -nltp|grep 3306,说明3306只绑定了127.0.0.1(localhost)
vim /etc/mysql/mysql.conf.d/mysqld.cnf,注释掉‘bind-address = 127.0.0.1’这行
重启mysql后,其他机器连接该服务器的mysql成功!!!
项目中使用报错
查阅资料发现是mysql版本和驱动版本不匹配https://www.cnblogs.com/like3ong/p/14889333.html,故需要重新安装mysql 5.6
3.安装mysql 5.6
3.1.卸载原来的mysql(参考https://www.jianshu.com/p/ea8b705f0915 )
首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql
卸载: sudo apt-get remove mysql-common
卸载:sudo apt-get autoremove --purge mysql-server-5.7
清除残留数据:dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
再次查看MySQL的剩余依赖项:dpkg --list|grep mysql
继续删除剩余依赖项,如:sudo apt-get autoremove --purge mysql-apt-config
3.2 apt源安装
参考https://www.osetc.com/archives/20436.html
使用旧源安装mysql 5.6,有部分库不存在了,故未成功
3.3 docker安装
官方仓库无相应镜像,找了一下基本都是自己做镜像,决定再换个方法。
3.4 源码编译安装
参考https://blog.csdn.net/KevinHades/article/details/88692551
报错贼多/(ㄒoㄒ)/~~,咱不管
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake -y(默认3.10.2)跨平台编译工具,这个要看每一个版本的mysql需要至少多少版本的各种工具
apt-get install make(默认4.1);
apt-get install gcc g++gcc编译工具和g++编译器(默认都是4.7.3)
apt-get install libncurses5 libncurses5-dev安装ncurses库,不知道啥的就去查,也可以不用知道
apt-get install bison安装bison库(默认是2.3版本)
#下载源码
cd /home/develop/mysql/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.43.tar.gz
解压
cd /home/develop/mysql/mysql-5.6.43/
#安装位置
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
#编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data
make -j4&& make -j4 install
#配置文件
新增/etc/mysql/my.cnf
#配置环境变量
vim /etc/profile
source /etc/profile
#初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#按提示进行检验
/usr/local/mysql/bin/mysqld_safe &
- 创建空日志文件 touch /usr/local/mysql/mysqld.log
#配置自启动服务
cp -rp support-files/mysql.server /etc/init.d/mysql
cp -rp /usr/local/mysql/support-files/mysql.server /etc/systemd/system/mysql.server
systemctl daemon-reload
#启动mysql
systemctl start mysql
- 可能是/usr/local/mysql/mysql.pid文件没有写的权限( 需创建mysql用户组,mysql相关文件权限更改)
- 解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld
【设置密码】
编辑/etc/my.cnf, 在[mysqld] 配置部分添加一行 skip-grant-tables;
重启mysql,mysql -uroot -p直接回车
mysql> use mysql;
mysql> update user set password=password("123456") where user='root';
mysql> flush privileges;
删除/etc/my.cnf文件中添加的“skip-grant-tables”行,重启mysql即可;
#校验结果
mysql -uroot -p123456
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON*.*TO'root'@'locahost' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> flush privileges;
至此,mysql 5.6安装完成!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下