linux下安装mysql5.7

这是我在腾讯云上安装mysql的一些记录

系统版本:CentOS Linux release 7.4.1708 (Core)

mysql版本:mysql-5.7.25-linux-glibc2.12

一、安装前:

  1.1 检查linux系统版本:[root@VM_0_14_centos ~]#  cat /etc/system-release

  1.2 检查是否安装了mysql:[root@VM_0_14_centos ~]# rpm -qa | grep mysql  (我机子安装了mysql后再执行该命令,还是什么都没找到。。。)

    卸载已安装的mysql:[root@VM_0_14_centos ~]# rpm -e --nodeps mysql

二、下载、安装mysql

  2.1 软件来源:

    [root@VM_0_14_centos ~]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 

    或者:链接:https://pan.baidu.com/s/17CyWUAL3cKJ8WK-haFiGtA    提取码:pv68 

  2.2 解压安装包、重命名为mysql并将其移动至/usr/local/mysql

        

  2.3 添加系统用户

    添加 mysql 组和 mysql 用户:

      添加 mysql 组:[root@VM_0_14_centos ~]# groupadd mysql

      添加 mysql 用户:[root@VM_0_14_centos ~]# useradd -r -g mysql mysql

      扩展:

        查看是否存在 mysql 组:[root@VM_0_14_centos ~]# more /etc/roup | grep mysql

        查看 msyql 属于哪个组:[root@VM_0_14_centos ~]# groups mysql

        查看当前活跃的用户列表:[root@VM_0_14_centos ~]# w

  2.3 检查是否安装libaio

    [root@VM_0_14_centos ~]# rpm -qa | grep libaio

    若没有则安装

      版本检查:[root@VM_0_14_centos ~]# yum search libaio

      安装:[root@VM_0_14_centos ~]# yum -y install libaio

  2.4 安装mysql

    创建mysql配置文件:

      创建/etc/my.cnf 并将并写入配置文件:

      [mysql]
      # 设置mysql客户端默认字符集
      default-character-set=utf8
      socket=/usr/local/mysql/mysql.sock
      [mysqld]
      #skip-name-resolve
      #设置3306端口
      port = 3306
      socket=/usr/local/mysql/mysql.sock
      # 设置mysql的安装目录
      basedir=/usr/local/mysql
      # 设置mysql数据库的数据的存放目录
      datadir=/usr/local/mysql/data
      # 允许最大连接数
      max_connections=200
      # 服务端使用的字符集默认为8比特编码的latin1字符集
      character-set-server=utf8
      # 创建新表时将使用的默认存储引擎
      default-storage-engine=INNODB
      #lower_case_table_name=1
      max_allowed_packet=16M

    在/usr/local/mysql 文件夹内创建data文件夹,用来存放数据

    修改当前目录拥有者为 mysql 用户:[root@VM_0_14_centos ~]# chown -R mysql:mysql ./

    初始化:[root@VM_0_14_centos mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

    初始化后,系统会自动为mysqlroot用户赋予一个临时密码:红圈中就是,一定要记住,第一次登录后要用的 

三、配置

  4.1 设置开机启动 

    a. 复制启动脚本到资源目录:[root@VM_0_14_centos mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

    b. 增加 mysqld 服务控制脚本执行权限:[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld

    c. 将 mysqld 服务加入到系统服务:[root@localhost mysql]# chkconfig --add mysqld

    d. 检查mysqld服务是否已经生效:[root@localhost mysql]# chkconfig --list mysqld

      命令输出类似下面的结果:

        mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

      表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用 service 命令控制 mysql 的启动和停止。

      查看启动项:chkconfig --list | grep -i mysql

      删除启动项:chkconfig --del mysql

    e. 启动 mysqld:[root@localhost mysql]# service mysqld start

    报错:

       解决:socket 没找到,八成是/etc/my.cnf中sock配置得有问题, 这样配:socket=/usr/local/mysql/mysql.sock

       配置文件改完后再次启动mysql:service mysqld start 就OK了

    在登录mysql时再次报错:

      

      执行登录命令时,系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下。

      这个是因为/usr/local/bin目录下缺失mysql导致,只需要一下方法建立软链接,即可以解决:

         把mysql安装目录,比如/usr/local/mysql/bin/mysql,映射到/usr/bin目录下:

        

     然后再登录mysql,又报错:

     

     找不到套接字了,首先要知道这个mysql.sock是干嘛的: 

      连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

     解决:先执行:[root@VM_0_14_centos ~]# find / -name mysql.sock

     如果可以查找到, 做个软连接就好了

     [root@VM_0_14_centos tmp]# ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock

  4.2 配置环境变量:

    vim /etc/profile

    加上这一句:export PATH = $PATH:/usr/local/mysql/bin

  4.3 更改密码、配置允许外网连接:

     这时就可以登上去了,但是登陆后无法进行任何操作,且外网也无法连接到该mysql:

    改密码三步:

      1: SET PASSWORD = PASSWORD('your new password');

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

       3: flush privileges;

    设置外网可连:

    

END!

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

 

posted @ 2019-02-24 21:38  宋讼颂  阅读(1694)  评论(0编辑  收藏  举报