zoukankan      html  css  js  c++  java
  • MySQL安装和配置以及数据导入

    1.ubuntu安装mysql

     sudo apt-get install mysql-server
     
     查看mysql 状态
       systemctl status mysql
      登录mysql
        sudo mysql -u root -p		
    

    2.访问mysql需要加sudo

    sudo mysql -uroot -p
     命令行修改root密码:
       mysql> use mysql; 
       mysql> select user, host from user;
       mysql> UPDATE mysql.user set plugin='mysql_native_password' WHERE user='root';
       mysql> FLUSH PRIVILEGES;
    mysql -uroot -p
      查看版本
      mysql> select version();
    

    3.远程访问

    步骤01. vim  /etc/mysql/mysql.conf.d/mysqld.cnf  
       修改配置文件mysqld.conf, 注释掉:
       #bind_address=127.0.0.1  表示只允许本地访问,注释掉该行
    步骤02.
      打开MySQL root用户的远程访问权限:
      use mysql;
      update user set host = "%" where user = "root";
      flush privileges;
      
      关闭MySQL root用户远程访问权限
      use mysql;
      update user set host = "localhost" where user = "root" and host = "%";
      --delete from user where user = "root" and host = "%";;
      flush privileges;
      
     reload #不关闭UNIT的情况下重新载入配置文件,让配置生效,只重新加载.conf类的文件
      重启mysql服务或者重新载入配置文件
    

    创建库

    1.创建数据库
     show variables like '%character%';
    create database if not exists my_database default character set = 'utf8';
    2.创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
      create user  '用户'@'%'  identified by '密码';
      grant all privileges on *.* to  '用户'@'%'  ;
      FLUSH PRIVILEGES;
    3.其他
     show databases;
     show global variables like 'wait_timeout';
     -- show status G 
     --show charset;
    

    加载数据

    LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE 
     FIELDS TERMINATED BY '	'
     OPTIONALLY ENCLOSED BY '"'
     LINES TERMINATED BY '
    '
     IGNORE 1 LINES
     set update_time=NOW()
     ;
    
     delete from data_dem where id = 122;
     truncate table data_dem;
     select * from data_dem limit 10 G 
     select count(1) from data_dem  ;
    
     alter database data_dem character set utf8mb4;
    

    排查

    查看网络情况
    	ip     ping
    	port    sudo lsof -i:3306
    	iptables
    ###查看mysql情况
        服务状态 systemctl status mysql
    	是否开放远程连接  /etc/mysql/mysql.conf.d/mysqld.cnf  
    

    配置文件

    default-authentication-plugin=mysql_native_password
    character-set-server=utf8
    character-set-filesystem=utf8
    max_connections=1000
    

    mysql集群

    主从复制 多主复制或环形复制
    主从复制技术
      01.master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
      02.slave 将 master 的 binary log events 拷贝到它的中继日志(relay log) ;
      03.slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行化的
      04.slave会从master读取binlog来进行数据同步
    复制的原则
    	每个slave只有一个master
    	每个slave只能有一个唯一的服务器ID
    	每个master可以有多个salve
    
    1.配置文件
         主服务器配置
             1.【必须】主服务器唯一ID
             server-id =1
             2.【必须】启用二进制日志    log_bin = /mysql/log/mysql-bin
             log-bin=自己本地的路径/mysqlbin
    		 
    		 例如: log_bin=master-bin 把这段话必须放到 [mysqld] 标签下
    		 -- log-bin配置项表示binlog的base name,产生的日志文件名称类似,master-bin.00001,master-bin.00002,master-bin.00003
    		 -- sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设
    		 log_bin=master-bin
             server-id=1
             sync_binlog=1	
         从服务器配置
            1.【必须】从服务器唯一ID
    		server-id=2
    2.主从中的mysql内执行命令配置				
    	01.在主机上建立账户并授权slave
        02.从机执行
             change master 用于配置和改变 slave 服务器用于连接 master 服务器的参数,
    	     以便 slave服务器读取 master 服务器的 binlog 及 slave 服务器的 relay log。
    	     同时更新 master.info 及 relay-log.info信
    	     
    	       执行 change master 命令后的信息保存在 master.info 和 relay-log.info 两个文件中
    	  
    3. MySQL 查询
        mysql> show variables like 'log_bin';
        -- show master status命令列出了日志位点信息,包括binlog file,binlog position等
       mysql> show master status   -- log-bin的配置名称
       -- server是slave,则执行show slave status中
       mysql > show slave statusG
       
    4.说明
        01. MySQL Replication在Master端开启binlog,
    	 Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。 
         02.通过使用mysqlbinlog工具来使恢复数据 
    	03.日志位置
    	    binlog是二进制文件,普通文件查看器cat more vi等都无法打开,须使用自带的 mysqlbinlog 命令查看
            binlog日志与数据库文件在同目录中
    		  mysql> show binlog events in
    

    参考:

    ubuntu18.04每次访问mysql需要加sudo问题 https://www.cnblogs.com/wlzx-dic/p/14068364.html
    MySQL允许远程访问  https://www.cnblogs.com/Deaseyy/p/13420245.html
    mysql中如何在创建数据库的时候指定数据库的字符集 https://www.cnblogs.com/bulh/articles/10609198.html
  • 相关阅读:
    SpringBoot入门
    VUE 监听局部滚动 设置ICON的位置跟随
    手机端页面调试工具-vconsole使用
    js获取字符串字节的位数
    判断数据为[] {} /空数组或空对象
    Vue axios 上传图片
    Vue触发input选取文件点击事件
    腾讯地图添加多个Marker
    VUE-CLI 设置页面title
    小程序wxml文件引用方式
  • 原文地址:https://www.cnblogs.com/ytwang/p/15431907.html
Copyright © 2011-2022 走看看