MySQL的配置详解
配置文件
配置文件与进程关系
[root@mysql-2 mysql]# cat /etc/my.cnf
[mysqld_safe]
#指定mysqld_safe进程的配置
#需要在mkdir /data/mysql 目录,然后使用命令chown mysql:mysql /data/mysql
#因为mysql进程需要往/data/mysql目录里写东西,需要权限,不然不能往目录下写日志
[client]
socket=/data/mysql/mysql.sock
#对客户端的配置
##socket是用来指定socket文件的路径,方便客户端连接找到
[mysqld]
log-error=/data/mysql/mysql.log
#这是指定mysql的日志文件的路径
socket=/data/mysql/mysql.sock
port = 3309
open_files_limit = 8192
innodb_buffer_pool_size = 256M
#mysqld是服务器端的配置
#port 指定端口号
#open_files_limit 指定mysql进程可以打开的文件数量,需要在操作系统里允许进程打开更多的文件
#使用ulimit -n 65535
#innodb_buffer_pool_size 指定缓存池的大小,提升数据性能的参数,最大可以达到物理内存的80%
#破解密码用
#user=mysql
#skip-grant-tables
#指定mysqld的socket文件所在的路径,/data/mysql目录一定要先存在。
#指定mysqld进程的配置
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
#对mysql命令执行的配置
#auto-rehash 支持tab键补齐
#prompt 登录进去后的提示符
查看mysql里的所有的参数
MySQL [(none)]> show variables like "%innodb%";
看与innodb相关的
MySQL [(none)]> show variables ;
模拟表格显示
MySQL [(none)]> show variables\G;
一行一个显示,以文本的方式
连接方式
1、文件socket
是实现一台电脑里的不同进程之间通信的文件
[root@mysql-2 mysql]# mysql -uroot -p’123456’ -S /data/mysql/mysql.sock
在my.cnf配置文件里打开下面的配置,在使用mysql客户端命令连接的时候,就不需要接-S指定socket文件的路径了
[client]
socket=/data/mysql/mysql.sock
1、socket文件一定要防止启动mysqld进程的用户具有写权限的目录里,推荐:数据目录或者/tmp
2、名字可以自己定义
2、网络socket
是ip+port --》格式ip:port 192.168.0.163:3309,网络中通过ip地址找到对方,是实现不同的电脑之间的不同的进程之间的通信
的
[root@mysql-2 ~]# mysql -h 192.168.0.163 -P3309 -ucali -p'123456'
-h 指定主机名(ip) host
-P port 端口 (大写)
问题
mysql服务启动不了,如何解决?
1.看mysql的配置文件,是否错误的配置
2.日志--》有用的信息--》找ERROR提醒
windows里不能连接到linux里的mysql,如何解决?如果判断故障?
1.windows的ip设置问题--》windows的网络问题
ping linux服务器的ip地址 ,检查网络是否通畅
linux 服务器的网络问题
2.linux里的防火墙是否开启
iptables -L
service firewalld stop
3.检查下mysql服务是否开启
ps aux|grep mysqld
4.检查下端口号是否修改
netstat -anlput|grep mysqld
5.连接的用户是否有授权
grant
6.云服务器的安全组 --》使用的是云服务器
进程关系
可以使用pstree查看进程关系,mysqld_safe和mysqld是父子进程,mysqld_safe管理mysqld,mysqld进程是工作进程
,真正干活的是mysqld
密码破解
不同用户
超级用户root@localhost
只能在本地登录
修改/etc/my.cnf
skip-grant-tables
使用另外一个管理员账户去修改'root'@'localhost'
alter user 'root'@'localhost' identified by '123456';
修改停止mysql服务--》中断业务
其他的普通用户
alter user 'cali'@'%' identified by 'Sanchuang123#';
使用超级用户登录,直接去修改密码就可以了
密码破解本质上是修改mysql库里的user表里的对应的用户的auth_string