day2mysql版本配置升级,基础管理

1. mysql的版本升级5.6.44-5.7.26

mysql版本升级有就地升级和迁移升级,mysql跨版本升级最好只跨一个版本,版本升级包括软件升级和数据升级!
环境:虚拟机是mysql5.6.44版本已经安装完成可用使用 升级到5.7.26版本
软件升级
1. 官网下载新版本到指定目录/usr/local/ 并解压。
2.修改旧版本软连接指向,ln -snf 5.7.26 mysql 命令执行后如下图
关于ln 命令的扩展,想要删除一个软链接时,rm -rf mysql”/“ 不能加斜线,否则只是删除目录下的资源。删除软连接目录下资源,源连接目标下的数据也会被删除

day2mysql版本配置升级,基础管理_第1张图片
image.png

数据升级
1.关闭旧版本mysql服务 mysqladmin -u root -p shutdown
2.使用现有数据目录启动新版本服务,此处因为做了软连接的更改,因此mysql的启动配置文件数据目录都无需改动。
/usr/local/mysql/support-files]#./mysql.server start
3.使用
mysql_upgrate 命令升级更新系统数据库
mysql_upgrade -uroot -p -S /tmp/mysql.sock
产看库可见升级成功。
参考 https://dev.mysql.com/doc/refman/5.7/en/upgrade-binary-package.html

2. mysql的连接管理

1.1 MySQL Linux 连接协议
Socket : 本地登录,提前创建好localhost相关用户
TCPIP : 远程登录,提前创建好 远程用户.
1.2 MySQL客户端
mysql :
[root@db01 ~]# mysql -uroot -p -S /tmp/mysql.sock
[root@db01 ~]# mysql -uoldguo -p -h10.0.0.51 -P3306

例子: 管理员用户root@'localhost',密码丢失 .
  (1. 通过跳过授权表参数+跳TCP/IP的参数,启动数    据库 
  --skip-grant-tables   : 跳过授权表,连接层关闭验    证模块.
  --skip-networking     : 关闭连接层TCP/IP,只留    socket文件连接

  (2. 无密码登录到MySQL 
  mysql 

  (3. 修改密码
  mysql> alter user  root@'localhost' identified by       '123';
  ERROR 1290 (HY000): The MySQL server is       running with the --skip-grant-tables option so it     cannot execute this statement
  mysql> flush privileges;
  mysql> alter user  root@'localhost' identified by     '123';

  (5. 正常重启数据库 
  [root@db01 ~]# service mysqld restart

  2.5 mysql的其他关闭方式 
   [root@db01 ~]# mysqladmin -uroot -p -S         /tmp/mysql.sock shutdown 

3. 多实例配置mysql

  5.1 规划 
  (1) 端口 : 3307,3308,3309 
  (2) 数据 : /data/330{7..9}/data 
  (3) 配置文件: /data/330{7..9}/my.cnf 
    port=3307/3308/3309
    server_id=7/8/9
    datadir=/data/330{7..9}/data 
    socket=/tmp/mysql330{7..9}.sock 
    
  5.2 干活 
  (1) 创建关键目录 
  mkdir -p /data/330{7..9}/data 
  chown -R mysql.mysql /data/*
  (2) 初始化数据
  [root@db01 /data]# mv /etc/my.cnf /tmp
  mysqld --initialize-insecure --user=mysql --      basedir=/usr/local/mysql --datadir=/data/3307/data  
  mysqld --initialize-insecure --user=mysql --      basedir=/usr/local/mysql --datadir=/data/3308/data  
  mysqld --initialize-insecure --user=mysql --      basedir=/usr/local/mysql --datadir=/data/3309/data  
  (3) 准备配置文件
  cat > /data/3307/my.cnf < /etc/systemd/system/mysqld3307.service       <

4. SQL基础应用&元数据获取

  1. SQL介绍
    结构化的查询语言.关系型数据库中通用的一种命令.
    使用SQL_MODE规范SQL语句的语法标准.

  2. SQL_MODE
    mysql> select @@sql_mode;
    ONLY_FULL_GROUP_BY,
    STRICT_TRANS_TABLES,
    NO_ZERO_IN_DATE,
    NO_ZERO_DATE,
    ERROR_FOR_DIVISION_BY_ZERO,
    NO_AUTO_CREATE_USER,
    NO_ENGINE_SUBSTITUTION
    确保数据有意义.

  3. SQL常用分类
    DDL : 数据定义语言
    DCL : 数据控制语言
    DML : 数据操作语言
    DQL : 数据查询语言

  4. 字符集&校对规则介绍
    字符集:
    utf8 : 最多允许字符长度为3个字节
    utf8mb4 : 最多允许字符长度为4个字节
    gbk :
    mysql> show charset;
    校对规则 : 排序规则
    AbCD
    ABCD
    mysql> show collation;
    说明:
    可以作用于库级别和表级别.一般是在建库建表时设定
    5.2 列的属性
    5.2.1 数据类型
    保证数据有意义.
    (1) 数值类型
    tinyint : 1Bytes=8bit -128~127 , 0-255 .最多存储1个字节长度数字
    int : 4Bytes, 0-232,-231~2^31-1,10位数
    bigint : 8Bytes, 0-264,-263~2^63-1,20位数
    说明:数值类型中一个字节等于8bit全1的情况最多是255
    (2) 字符串类型(万能)
    char(64) : 括号中最大的字符长度 255字节
    定长的字符串类型,一次性分配固定长度存储空间,存不满,用空字符串填充

    varchar(64) :变长的字符类型, 按需分配存储空间.
    65535字节,最多65533.
    1-255字符之间,单独占用1字节存储字符长度.
    256-65535字符长度,单独占用2字节存储字符长度
    区别 :
    char(64) varchar(64)

    1. 定长 和 变长
    2. 64代表了,最多可以存储字符的个数
    3. 字节限制 255 , 65535字节
    4. varchar 需要花费额外的1-2字节存储字符长度
      说明:字符串类型char()括号里的数字代表字节数

(3)enum('山东省','河北省','北京市','上海市'......) :
枚举类型
0 1 2 3
注意: 数字列不要使用,经常变化的列不要使用

(3) 时间类型
datetime
timestamp
DATETIME
范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。
TIMESTAMP
1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。
timestamp会受到时区的影响
(5) 二进制类型 (略)
(6) Json类型(8.0以后支持的比较好)

6.3 约束
not null 非空约束
unique key 唯一约束
primary key 主键约束联合主键(非空且唯一),一张表只能有一个,一般是ID列,身份证列,学号列,带有字母+数字的。可用联合主键约束其唯一性正合适
数据类型约束: unsigned 非负数

6.5 其他属性
auto_increment 自增长
default 默认值
comment 注释

你可能感兴趣的:(day2mysql版本配置升级,基础管理)