一、引言
因为前段时间安装使用apt-get安装mysql实在是因为各种依赖问题,把我逼疯了,最后也没安装下来,所以只好使用压缩包解压安装,这也是效率最高的方法了,不会因为各种依赖问题烦恼。
非常感谢原博主的文章,也是借鉴了很多,如果安装过程中遇到了问题,也可以去博主页面看看,评论区也有很多答案
路径:https://blog.csdn.net/qq_37598011/article/details/93489404
二、压缩包下载
地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
这里我们选择当前的文件,不用选择其他的,因为可能是deb文件压缩的。
下载完成后我们就放在home文件夹下面,然后使用下面的命令进行解压,顺便移动一下位置
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar # 用于解压
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql # 解压完成后进行移动
三、配置环境
创建mysql用户组和用户并修改权限
groupadd mysql useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录 chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vim /etc/my.cnf
内容如下
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
初始化数据库,进入mysql的bin目录
cd /usr/local/mysql/bin/
然后我们执行初始化命令
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
这里我报错了:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因也很好查找,因为缺少依赖libaio,使用以下命令进行安装即可,安装完就可以进行初始化了,记住初始化一定要记住密码,因为后面有些问题可能会让你重启服务器/虚拟机
apt-get -y install libaio* libaio-dev*
查看密码:cat /data/mysql/mysql.err
启动mysql,并更改root密码,先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后启动mysql
service mysql start ps -ef|grep mysql
但是在运行service mysql start的时候却报了一个错误:Failed to start mysql.service: Unit mysql.service not found.
这里我是直接重启服务器就好了,这也就是为什么前面要保存密码的原因,但是如果还不行的话,我这里也收集了很多怎么安装的资料,重启可以解决的话就跳过吧
报错原因呢是需要安装:mariadb-server
于是我们继续安装这个依赖,报错了
The following packages have unmet dependencies: mariadb-server : Depends: mariadb-server-5.5 (>= 5.5.64-1ubuntu0.14.04.1) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
然后收集了解决方案:https://blog.csdn.net/cocos2dGirl/article/details/99332772
这里我是换配置进行解决的,然而,在运行这条命令时出错了:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
Executing: /tmp/apt-key-gpghome.BhkdFzE3W6/gpg.1.sh --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 gpg: connecting dirmngr at \'/tmp/apt-key-gpghome.BhkdFzE3W6/S.dirmngr\' failed: IPC connect call failed gpg: keyserver receive failed: No dirmngr
继续解决:https://my.oschina.net/xlyslr/blog/2996085
继续报错,这个问题还是比较友好的,安装就完事了
Command \'curl\' not found, but can be installed with: apt install curl
但是当我继续安装时,它还是给我报错,数据库没有签字,这个我没找到解决方案
E: The repository \'http://mirrors.dotsrc.org/mariadb/repo/10.1/debian stretch InRelease\' is not signed. N: Updating from such a repository can\'t be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
没办法,我只能另辟蹊径,去找离线的包,解压进去看看
下载MariaDB安装包:https://downloads.mariadb.org/
其实解决到这话,就是另外的安装了,因为mariadb和mysql是两个可以替代的工具,我后面也尝试安装了,但是没有成功,就不想继续写下去了,csdn也有很多教程
继续正文
当我们启动成功之后就开始登陆了,运行下面代码并输入我们之前的随机密码
./mysql -u root -p # 记住是在/usr/local/mysql/bin/目录下执行
在执行下面三行代码进行登录
SET PASSWORD = PASSWORD(\'123456\'); ALTER USER \'root\'@\'localhost\' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES;
quit
这时候你如果使用远程连接……你会发现你无法连接,继续执行下面命令
use mysql #访问mysql库 update user set host = \'%\' where user = \'root\'; #使root能再任何host访问 FLUSH PRIVILEGES;
quit
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
为了防止版本不同而导致安装失败……这里我把MySQL的包放在百度云上。
链接: https://pan.baidu.com/s/1oZLaBAELK9tuB1FCfQfzUg 提取码: mvji 复制这段内容后打开百度网盘手机App,操作更方便哦