Linux安装MySQL5.7

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

 

解压

  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

创建数据目录并赋予权限

 

配置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

在安装mysql时遇到以下错误

  执行./mysqld --initialize 后 ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

  原因是没有安装libaio.so.1,安装即可。

Ubuntu下执行:

  apt-get install libaio1 libaio-dev

Redhat/Fedora/CentOS下执行:

  yum install libaio

查看密码

  cat /data/mysql/mysql.err

 

启动mysql,并更改root 密码

  先将mysql.server放置到/etc/init.d/mysql中

启动!!!

  service mysql start

启动出现了问题

  这个一看就是权限问题了
  log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

  用WinSCP去看的时候发现并没有/var/log/mariadb/mariadb.log这个路径,那我们就创建, 并给mysql用户授权即可

  mkdir /var/log/mariadb 
  touch /var/log/mariadb/mariadb.log 

  chown -R mysql:mysql  /var/log/mariadb/

  再输入开启mysql服务, 搞定!

 

到这里说明mysql已经安装成功了!!

下面修改密码

首先登录mysql,前面的那个是随机生成的

  ./mysql -u root -p   #bin目录下

 

 再执行下面三步操作,然后重新登录。

  SET PASSWORD = PASSWORD('123456');

   ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

  FLUSH PRIVILEGES;

 

 这时候你如果使用远程连接……你会发现你无法连接。

  这里主要执行下面三个命令(先登录数据库)

    use mysql #访问mysql库
  update user set host = '%' where user = 'root'; #使root能再任何host访问
  FLUSH PRIVILEGES; #刷新

 

   打开防火强端口,添加端口

  打开防火墙 systemctl start firewalld

  添加端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

  重新载入 firewall-cmd --reload

  查询指定端口 firewall-cmd --zone= public --query-port=33.6/tcp

  查询所有端口 firewall-cmd --list-ports

  删除端口 firewall-cmd --zone= public --remove-port=3306/tcp --permanent

  假如是云服务器也需要开启

 

 连接陈成功!!!

如果不希望每次都到bin目录下使用mysql命令则执行以下命令

  ln -s /usr/local/mysql/bin/mysql /usr/bin

posted @   Rocor  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示