ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL安装和配置以及数据导入

2021-10-21 18:02:14  阅读:195  来源: 互联网

标签:binlog slave log show MySQL 导入 master 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 '\t'
 OPTIONALLY ENCLOSED BY '"'
 LINES TERMINATED BY '\n'
 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 status\G
   
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

标签:binlog,slave,log,show,MySQL,导入,master,mysql,安装
来源: https://www.cnblogs.com/ytwang/p/15431907.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有