mysql 常用基础

mysql5.7 修改密码

#关闭mysql
service mysql stop

#运行
mysqld_safe --skip-grant-tables --skip-networking &

#连接mysql
mysql

#更改密码
mysql> update mysql.user set authentication_string=password('root') where user='root' and Host = 'localhost';

mysql> flush privileges;
mysql> quit


#重启mysql
service mysql restart


#连接mysql
mysql -uroot -proot

#执行命令
mysql> alter user 'root'@'localhost' identified by 'root';
或者
mysql> set password for 'root'@'localhost'=password('root');

查看mysql正在使用的配置文件

[root@master ~]# ps -ef |grep mysql| grep "my.cnf"
 如果上面的命令没有输出,表示没有设置使用指定目录的my.cnf。
[root@master
~]# mysql --help|grep 'my.cnf'               order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf       #输出的内容为默认使用my.cnf的文件 如果没有设置使用指定目录my.cnf文件及默认读取目录没有my.cnf文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。 需要修改配置,可以在mysql默认读取的目录中,创建一个my.cnf文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启mysql后即可生效。

mysql 主从问题

1、防火墙问题(centos7)

连接master时报:
[root@master-bak ~]# mysql -uroot -proot -h 192.168.132.131
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.132.131' (113)
#关闭防火墙即可
[root@master-bak ~]# service firewalld stop
Redirecting to /bin/systemctl stop  firewalld.service

 [root@master-bak ~]# systemctl disable firewalld
 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
 Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

2、查看slave状态时, Slave_IO_Running: NO:

注释/etc/my.cnf下的
gtid_mode = on

重启mysql

然后进入mysql
mysql> stop slave; Query OK, 0 rows affected (0.00 sec) mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; Query OK, 0 rows affected (0.00 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec)

大量插入数据的优化

#对于 MyISAM 类型的表,可以通过以下方式快速的导入大量的数据。

ALTER TABLE tblname DISABLE KEYS;
LOAD DATA LOCAL INFILE '/usr/share/dict/words' INTO TABLE source_words(word);
ALTER TABLE tblname ENABLE KEYS;

这两个命令用来打开或者关闭 Myisam 表非唯一索引的更新。在导入大量的数据到一个非空的 MyISAM 表时,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的 MyISAM 表,默认就是先导入数据然后才创建索引的,所以不用进行设置。


#InnoDB类型的表,因为 InnoDB类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果 InnoDB表没有主键,那么系统会默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这个优势提高导入数据的效率。

#在导入数据前执行

#关闭唯一性校验,在导入结束后执行
SET UNIQUE_CHECKS=0;

#恢复唯一性校验,可以提高导入的效率。
SET UNIQUE_CHECKS=1;

#如果应用使用自动提交的方式,建议在导入前执行

#关闭自动提交,导入结束后再执行
SET AUTOCOMMIT=0;

#打开自动提交,也可以提高导入的效率。
SET AUTOCOMMIT=1;

持续更新中。。。

原文地址:https://www.cnblogs.com/FRESHMANS/p/8674767.html