1、mysql的LINUX下安装
1.1、下载:在官网https://dev.mysql.com/downloads/mysql/5.7.html#downloads下载(linux-Generic),mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz(注意版本号和位数)
1.2、解压:tar -xzvf mysql-5.7.23.tar.gz
1.3、初始化:/usr/local/mysql/bin/mysqld --initialize --datadir=/mysql/data/ --basedir=/usr/local/mysql/ --user=mysql
注:datadir该参数指定了 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。
basedir该参数指定了安装 MySQL 的安装路径,填写全路径可以解决相对路径所造成的问题。
初始化完成后查看初始密码:在vi /mysql/logs/mysql.error.log下查看初始密码1.44为password is generated for root@localhost: XXXXXX
1.4、启动:/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/mysql/data/ --user=mysql &
1.5、登录:mysql -uroot -p
1.6、初次登录修改密码(否则无法进行操作):
SET PASSWORD = PASSWORD('新密码');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
2、mysql数据库备份
2.1、备份数据库:mysqldump -u账号 -p密码 库名 --skip-lock-tables > /存储路径/库名.sql
2.2、导入数据库:(命令行登录数据库,新建数据表之后,否则可能会将数据导入别的库之中)
create database 库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
use 库名;
source /存储路径/库名.sql;
3、mysql更改数据库大小写敏感
在数据库的my.cnf中添加lower_case_table_names =1,
(命令行登录数据库,新建数据表之后)show variables like '%lower%'; 查看lower_case_table_names的值(0为敏感,1为不敏感)
之后重启service mysql start(restart/stop)
4、mysql数据库内容查找
find /数据库文件存储路径 -name "*" | xargs grep -E "要查找的内容" >> /存储结果的路径/文件名.txt
5、mysql数据库添加用户,添加数据库
mysql -uroot -p密码;
use mysql;
select host,user,password from user;
create database 库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on 库名.* to 新用户名@'%' identified by "新密码";
flush privileges;
其他可能会用到的:
select host,user,password from user;有的版本的密码是authentication_string
DELETE FROM user WHERE user='原用户名';
6、mysql查看版本
mysql -V
7、mysql双主互备
7.1、登录第二台机器修改/etc/my.cnf文件server-id = 2(确认两台为不一样的,第一台为1)
7.2、登录mysql数据库,在2个主机上均执行:
设置用户slave:
>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%' IDENTIFIED BY 'XXXX';
>FLUSH PRIVILEGES;
7.3、查看主机信息:
>show master status; #获取本机上的File和Position值。
7.4、将slave改为从对方进行数据同步,两台服务器上分别执行:
>stop slave;
>change master to
master_host = '对方IP',
master_port = 对方数据库端口(比如3306),
master_user = 'slave',
master_password = 'XXXX',
master_log_file = 'File',
master_log_pos = Position; // x.x.x.x为对方的IP,File为对方的File值,Position对方的Position值。
>start slave;
7.5、验证
>show slave status \G
确认以下均为Yes;
Slave_IO_Running: Yes #负责与主机的io通信。
Slave_SQL_Running: Yes #负责自己的slave mysql进程。
8、mysql删库
DROP DATABASE 库名(或者mysqladmin -u root -p drop RUNOOB)
如果提示错误:ERROR 1010 (HY000): Error dropping database (can't rmdir './库名', errno: 39)
处理方法: find / -name 库名,可以找到数据存储位置/mysql/data/库名
直接删除:/mysql/data/库名/*全部文件
9、修改数据库的编码格式
show variables like 'character_set_database';
alter database 库名 character set utf8mb4;