启动:【mysql:service mysql start || /etc/init.d/mysqld start || systemctl start mariadb;redis:./redis-server(bin目录下) || systemctl start redis@6380;mongodb:systemctl start mongod】

ps aux | grep redis #查看启动情况

停止:【mysql:/usr/bin/mysqladmin -u root -p shutdown;redis:】

重新启动:【mysql:sudo /etc/init.d/mysql restart ;redis:】

配置文件:mysql:my.cnf ;redis:redis.conf 在/etc目录下

查MySQL错误日志:show variables like '%log_error%';
查询字符集:show variables like '%set%';
查看状态变量:show status like '%set%';

查redis日志:到配置文件看logfile后的路径
慢查询日志:slowlog get

启动数据库(root下)
mongo : mongod --config /etc/mongod.conf
redis : redis-server /etc/redis.conf
mysql : systemctl start mysql


mysql错误日志:https://www.cnblogs.com/kerrycode/p/5484100.html#

mysql慢查询日志:https://www.jianshu.com/p/3c8bb49fd51b

mysql配置文件my.cnf:https://www.cnblogs.com/duanxz/p/3875760.html


避免索引失效的一些原则

1、复合索引,不要跨列或无序使用(最佳左前缀);

2、符合索引,尽量使用全索引匹配;

3、不要在索引上进行任何操作,例如对索引进行(计算、函数、类型转换),索引失效;

4、复合索引不能使用不等于(!=或<>)或 is null(is not null),否则索引失效;

5、尽量使用覆盖索引(using index);

6、like尽量以常量开头,不要以%开头,否则索引失效;如果必须使用%name%进行查询,可以使用覆盖索引挽救,不用回表查询时可以触发索引;

7、尽量不要使用类型转换,否则索引失效;

8、尽量不要使用or,否则索引失效;

注:如果主查询的数据集大,则使用in;

如果子查询的数据集大,则使用exist


导出redis数据

导出匹配的key:redis-cli -a EZFUNxgame123 --scan --pattern "ezfun1_role_db_100010" >> temp

导出:
redis-cli -a EZFUNxgame123 get key

导出 redis 中 SESSIONID_0a0112fcq2oHi9cixb 这种以 SESSIONID_ 开头的所有 key 的值,实现如下:

只导出 value:

    REDIS_CLI="redis-cli -h 127.0.0.1 -p 6379 -a password" 
    # $REDIS_CLI --scan --pattern SESSIONID_* | xargs -I {} $REDIS_CLI GET {} > values.txt

导出 key 和 value ,格式为 key --> value:

    REDIS_CLI="redis-cli -h 127.0.0.1 -p 6379 -a password"
    # for i in $($REDIS_CLI --scan --pattern SESSIONID_* );do echo -n "$i --> ";$REDIS_CLI GET $i;done > keys_values.txt

--scan:获取所有的 key
--pattern:和 --scan 一起使用,只获取匹配到的所有 key


报错

1:Lost connection to MySQL server at 'reading initial communication packet'
解决方法:重启mysql【把旧的直接kill掉】
https://help.aliyun.com/document_detail/41104.html#FNAsr
https://cloud.tencent.com/developer/article/1963711

2:“Got an error reading communication packet”
https://juejin.cn/post/7150565947072315428


命令:

desc 表名 查看表的字段信息
mysql -u -p
redis-cli -a


Note:

1、自动启动:
查看mysql是否在自动启动列表中 /sbin/chkconfig --list
把MySQL添加到你系统的启动服务组里面去 /sbin/chkconfig --add mysql
把MySQL从启动服务组里面删除 /sbin/chkconfig --del mysql

2、增加MySQL用户:
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

3、远程访问:
  其一:
  GRANT ALL PRIVILEGES ON . TO xoops_root@'%' IDENTIFIED BY '654321';
  允许xoops_root用户可以从任意机器上登入MySQL。
  其二:
  编辑 /etc/mysql/my.cnf
  >skip-networking => # skip-networking
  这样就可以允许其他机器访问MySQL了。
grant all on . to 'root'@'ip' identified by 'password';

4、备份与恢复:
备份:
进入到库目录,cd /val/lib/mysql
mysqldump -u root -p --opt aaa > back_aaa

恢复:mysql -u root -p ccc < back_aaa