linux下安装mysql(一)
引言
今天要在linux上安装mysql,也是踩了很多坑才安装成功,话不多说,直接上教程
同时也分享一些原博主的安装教程,这里我也是照着安装的,但是我碰到很多博主没有碰到的问题
原博客:https://blog.csdn.net/qq_37598011/article/details/93489404
安装mysql
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
这里大家选择这一个就可以了,不用参考其他的,因为有很多deb格式的文件
解压
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
初始化数据库
cd /usr/local/mysql/bin/ ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize cat /data/mysql/mysql.err # 查看密码
在执行第二步时可能会有一个报错提示,缺少libaio依赖。选择自己的linux版本进行安装即可,安装完成在执行第二句,这里记住随机密码,因为后面有坑可能会让你重启服务器/虚拟机
yum -y install libaio* libaio-dev* #centos apt-get -y install libaio* libaio-dev* #ubuntu
启动mysql,并更改root密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动!!!!
service mysql start #这一步应该会报错 ps -ef|grep mysql
报错代码如下:,Failed to start mysql.service: Unit mysql.service not found
这里需要重启服务器就好了,至少我是这么办到的,如果不行就只能另找其他办法了
如果这里输入两行代码linux没有返回也没关系,我的实际是开启了但是没有succeed提示,有下面的图就说明mysql安装成功了
下面修改密码,因为我们上面已经切换到bin目录下了,直接运行mysql
./mysql -u root -p #bin目录下
再执行下面三步操作,在使用quit退出
SET PASSWORD = PASSWORD('123456'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES;
这里修改密码也有一个坑,就是报错: ERROR 1054(42S22) Unknown column 'password' in 'field list'
原因: 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string;
应该使用:mysql> update user set authentication_string=password(“新密码”) where user=”用户名”;
这时候你如果使用远程连接,你会发现你无法连接,继续执行下面的操作
use mysql #访问mysql库 update user set host = '%' where user = 'root'; #使root能再任何host访问 FLUSH PRIVILEGES;
这里如果还连接不上,多半是因为要远程开发端口,重启防火墙,这里可能需要安装firwall,直接安装即可:apt install firewall
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
这里如果连接mysql报错10060可以看下这里的解决方案
https://www.cnblogs.com/mmzs/p/9201558.html
为了防止版本不同而导致安装失败……这里我把MySQL的包放在百度云上。
链接: https://pan.baidu.com/s/1oZLaBAELK9tuB1FCfQfzUg 提取码: mvji 复制这段内容后打开百度网盘手机App,操作更方便哦