zoukankan      html  css  js  c++  java
  • MySQL的安装教程


    一、Centos 安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

    1. 安装MySQL5.7

    1. 下载并安装MySQL官方的 Yum Repository

      wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
      yum -y install mysql57-community-release-el7-10.noarch.rpm
      yum -y install mysql-community-server
      yum -y remove mysql57-community-release-el7-10.noarch
      systemctl start  mysqld.service
      systemctl status mysqld.service
      
    2. 查看MySQL默认的root密码

      grep "password" /var/log/mysqld.log

    3. 修改root密码

      mysql -uroot -p
      ALTER USER 'root'@'%' IDENTIFIED BY 'new password';
      flush privileges; 
      
    4. 修改配置文件

      // do something...
      

    2. 安装MySQL8.0

    1. 下载并安装MySQL官方的 Yum Repository

      wget -i -c  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
      yum -y install mysql80-community-release-el7-1.noarch.rpm
      yum -y install mysql-community-server
      yum -y remove mysql80-community-release-el7-1.noarch
      systemctl start  mysqld.service
      systemctl status mysqld.service
      
    2. 查看MySQL默认的root密码

      grep "password" /var/log/mysqld.log

    3. 修改root密码

      mysql -uroot -p
      

    ALTER USER 'root'@'%' IDENTIFIED BY 'new password' PASSWORD EXPIRE NEVER;
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new password';
    flush privileges;

    
    4. 修改配置文件
    ```ini
    // do something...
    


    二、Docker 安装MySQL

    1. 安装5.7

    version: '3'
    services:
      # ref:https://hub.docker.com/_/mysql
      # ref:https://docs.docker.com/samples/library/mysql/#-via-docker-stack-deploy-or-docker-compose
      mysql:
        image: mysql:5.7.22
        container_name: mysql
        command:
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
        # data 用来存放了数据库表文件,init存放初始化的脚本
        volumes:
          - ./mysql/data/:/var/lib/mysql/
          - ./mysql/conf/my.cnf:/etc/my.cnf
          - ./mysql/init:/docker-entrypoint-initdb.d/
        restart: always
        ports:
          - "3306:3306"
        environment:
          TZ: Asia/Shanghai
          MYSQL_ROOT_PASSWORD: root
    

    2. 安装8.0

    version: '3'
    services:
      # ref:https://hub.docker.com/_/mysql
      # ref:https://docs.docker.com/samples/library/mysql/#-via-docker-stack-deploy-or-docker-compose
      mysql:
        image: mysql:8.0
        container_name: mysql
        command:
          --default-authentication-plugin=mysql_native_password
          --character-set-server=utf8mb4
          --collation-server=utf8mb4_general_ci
          --explicit_defaults_for_timestamp=true
          --lower_case_table_names=1
        # data 用来存放了数据库表文件,init存放初始化的脚本
        volumes:
          - ./mysql/data/:/var/lib/mysql/
          - ./mysql/conf/my.cnf:/etc/my.cnf
          - ./mysql/init:/docker-entrypoint-initdb.d/
        restart: always
        ports:
          - "3306:3306"
        environment:
          TZ: Asia/Shanghai
          MYSQL_ROOT_PASSWORD: root123
          MYSQL_USER: dev
          MYSQL_PASSWORD: dev123
    

    3. docker-compose安装

    #写好docker-compose.yml文件后使用命令启动容器
    docker-compose up -d
    docker-compose ps
    


    三、MySQL卸载



    四、注意事项

    1. com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

    com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的;MySQL8需要使用com.mysql.cj.jdbc.Driver驱动。


    mysql8.0驱动:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
        <scope>runtime</scope>
    </dependency>
    

    2. MQL5.x 和MySQL8.x使用的注意事项

    jdbc:mysql://localhost:3306/database?useUnicode=true&serverTimezone=GMT%2B8&useSSL=false&autoReconnect=true&autoReconnectForPools=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

    • 驱动:选择com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver。
    • 时区:主动指定时区
      • serverTimezone=UTC (比中国晚8小时)
      • serverTimezone=GMT%2B8 (GMT+8 北京时间)
      • serverTimezone=Shanghai (上海时间)
      • serverTimezone=Hongkong (香港时间)
    • SSL:如果未明确设置,MySQL 5.5.45+, 5.6.26+ and 5.7.6+版本默认要求建立SSL连接;如果你不需要使用SSL连接,你需要通过设置useSSL=false来显式禁用SSL连接。

    3. 连接mysql 8错误:authentication plugin 'caching_sha2_password'

    该异常原因是:在mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password。


    4. 连接mysql错误:Too many connections

    mysql 默认151 连接数,超过则连不上,实际工作的连接数远远没有100,大部分在sleep,所以要么增大连接数,要么杀掉无用连接,推荐后者。

    • 查看mysql 最大连接数
      show variables like '%max_connections%';

    • 临时设置mysql 最大连接数 (重启失效)
      set GLOBAL max_connections=1024;

    • 永久设置mysql最大连接数

      • 打开/etc/my.cnf文件
      • 配置max_connections=1024
      • 重启mysql服务
  • 相关阅读:
    TranslateAnimation详解
    商业价值:谷歌娱乐影音之路上的硬件产品
    红黑树源码实现
    cocos2d-x Loading界面实现资源加载
    Android String 转 MD5
    [置顶] 【原创分享】嵌入式linux应用之内核移植定制篇-前篇(linux-3.8.12 mini2440)--20130824
    搭建Windows故障转移群集
    ,典型递归问题-F(1025)mod 5 的值
    android:为TextView加入样式——下划线,颜色,设置链接样式及前背景色
    现在仍在工作的12名最“屌”的程序猿
  • 原文地址:https://www.cnblogs.com/kancy/p/install_mysql.html
Copyright © 2011-2022 走看看