Mysql
日志
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
日志位置:
命令行
mysql>show variables like 'log_%';
mysql>show master status; //查看当前的日志,高权用户才能用
配置文件/etc/my.cnf看
0x0 如何查看是否安装mysql
mysql 的守护进程是mysqld ,可以用以下命令查看是否安装mysql服务
service mysqld start
chkconfig检查,设置系统服务,如果mysql服务没有添加这里也看不到的
[root@localhost ~]# chkconfig --list mysqld/mysql
如果mysql服务已经启动
ps -el | grep mysqld
0x1 路径
1.查看文件安装路径
whereis mysql //这个命令只是找原始代码、二进制文件,或是帮助文件的,不能确定有没有安装mysql
2.查询运行文件所在路径
which mysql //查找环境变量path中的mysql
0x2 命令
一条龙
SHOW DATABASES;
use [database];
show tables;
select * from [table];
select * from [table] where [列名]='xxx';
命令行连接mysql
mysql -u[用户名] -p[密码] //注意这里中间不能有空格
启动
1、使用 service 启动
service mysqld restart
service mysql restart (5.5.7版本命令)
2、使用 mysqld 脚本启动
/etc/init.d/mysqld restart
信息
查看MySQL版本
status;
select version();
查看数据库
SHOW DATABASES;
停止服务
service mysqld stop
/etc/inint.d/mysqld stop
mysqladmin shutdown
创建表
mysql> CREATE TABLE runoob_tbl(
-> runoob_id INT NOT NULL AUTO_INCREMENT,
-> runoob_title VARCHAR(100) NOT NULL,
-> runoob_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( runoob_id )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
精简版
mysql> CREATE TABLE [表名](
-> id INT NOT NULL,
-> title VARCHAR(100) NOT NULL,
-> );
大小写都可,主要是create!!
建完表之后回显0 row affect是正常的哦
插入数据
insert into [表名] values ('xxx');
【重点分享】网安小伙伴都在看的Linux安全笔记_id (sohu.com)
mysql 赋给用户远程权限
1.登录
在本机上使用命令行登陆,并切换到mysql库
mysql -uroot -p
use mysql;
2.更改表
要查看user表中user=’root’的对应情况,根据实际需求来更改表信息
select host,user from user where user='root';
# 如果上面查询到有信息,但host为localhost或其他值,就需要根据实际需求来更新表信息
update user set host='%' where user='root' # 如果想任何的IP地址都可以使用root用户来远程登陆(注意如果上面的查询语句,查询出来有多条,就需要做一些处理,比如多加一个条件如 where user='root' and host='localhost'或先删除其他人记录只保存一条user='root'的记录)
3.更改权限
使用grant all privileges on来更改用户对应某些库的远程权限
grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
flush privileges;
库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
密码:要赋给远程访问权限的用户对应使用的密码
例:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'lxh' WITH GRANT OPTION; # 所有的地址都可以使用root用户,密码为lxh远程访问所有的数据库
flush privileges;
GRANT ALL PRIVILEGES ON testdb.* TO 'lxh'@'172.16.52.225' IDENTIFIED BY 'lxh' WITH GRANT OPTION; # IP为172.16.52.225的电脑可以使用lxh用户,密码为lxh远程访问数据库testdb的所有表
需要注意mysql的配置文件my.cnf中的bindaddress 的参数和skip-networking 配置
/etc/mysql/my.cnf
\etc\my.cnf
bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值
bind-address = 127.0.0.1 去除 IP 地址绑定,把它改为: bind-address = 0.0.0.0 然后重启 MySQL Server: /etc/init.d/mysql restart
skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数