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,操作更方便哦

  

  

 

posted @ 2021-04-18 19:12  极客海  阅读(142)  评论(0编辑  收藏  举报