MySQL日常维护参考手册

一、启动和停止mysql服务

1、使用 service 启动:

[root@szxdb etc]# service mysqld start

重启:

Service mysqld restart

停止:

Service mysqld stop

2、使用 mysqld 脚本启动:

/etc/inint.d/mysqld start

重启:

/etc/init.d/mysqld restart

停止:

/etc/init.d/mysqld stop

3、使用 safe_mysqld 安全启动:

mysqld_safe --defaults-file=/etc/my.cnf --user=root &

二、登录mysql服务

1、连接本地的mysql服务

方式一:mysql -u用户名 -p密码

注意:u 和用户名, p 和用户名之间没有空格 

 

方式二:后输入密码方式: 
mysql -uroot -p

 

可以看到mysql的版本为5.7.17

退出mysql服务:exit或quit

exit

2、连接远程mysql服务

方式一:
mysql -hip地址 -u用户名 -p密码

 

方式二:

mysql --host=127.0.0.1 --user=root --password=123456

 

 如果端口不为3306:

mysql -hip地址 -port端口号 -u用户名 -p密码

mysql --host=127.0.0.1 --port=13306 --user=root --password=123456

3、最大连接数

查看最大连接数

show variables like '%max_connections%';

修改最大连接数

set GLOBAL max_connections = 2000;

三、常用操作命令

1、查看MySQL的版本

方法一:status;

方法二:select version();

2、查看数据库

show databases;

3、使用某个数据库

use 数据库名;

4、展示该数据库的表信息

show tables;

5、展示表中的基本信息

desc 表名;

四、授权和撤消

1、创建用户

语法: 

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

关键字说明: 

具体操作: 

创建 user1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123 

create user 'user1'@'localhost' identified by '123';

创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123

create user 'user2'@'%' identified by '123';

注:创建的用户名都在 mysql 数据库中的 user 表中可以查看到,密码经过了加密。 

2、给用户授权

用户创建之后,没什么权限!需要给用户授权

语法: 

GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';

关键字说明: 

给 user1 用户分配对 test 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询

grant create,alter,insert,update,select on test.* to 'user1'@'localhost';

注:用户名和主机名要与上面创建的相同,要加单引号。

给 user2 用户分配所有权限,对所有数据库的所有表

grant all on *.* to 'user2'@'%';

刷新

flush privileges;

3、撤销授权

语法: 

REVOKE 权限 1, 权限 2... ON 数据库.表名

revoke all on test.* from 'user1'@'localhost'; '用户名'@'主机

';

关键字说明: 

 

撤销 user1 用户对 test 数据库所有表的操作的权限

revoke all on test.* from 'user1'@'localhost';

注:用户名和主机名要与创建时相同,各自要加上单引号

4、查看权限

语法: 

SHOW GRANTS FOR '用户名'@'主机名';

查看 user1 用户的权限 

注:usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。 

5、删除用户

语法 

DROP USER '用户名'@'主机名';

删除 user2 

drop user 'user2'@'%';

6、修改管理员密码

语法

mysqladmin -uroot -p password 新密码

注意:需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。

1)、 将 root 管理员的新密码改成 123456

2)、 要求输入旧密码

3) 、使用新密码登录

 

7、修改普通用户密码

语法: 

set password for '用户名'@'主机名' = password('新密码');

注意:需要在登陆 MySQL 的情况下操作,新密码要加单引号。 

将'user1'@'localhost'的密码改成'666666'

使用新密码登录,老密码登录不了

 

五、备份和还原

1、备份

一. 备份数据库(如: test):

①可直接进入后台即可.(MySQL的默认目录:/usr/local/mysql )

②输入命令:

[root@obj mysql]# mysqldump -u root -p test>/home/bak/2015-09-10/test.sql
Enter password: 123456

此时,已成功将数据库test备份到/home/bak/2015-9-10目录下的test.sql中.

二、脚本备份(参考如下文档)

 

2、还原

三. 还原数据库(如: test):

1.第一种方法.
[root@obj root]# mysql -u root -p test < /home/bak/2015-09-10/test.sql
Enter password:123456

2.第二种方法.
①先登录mysql数据库,输入命令 mysql -u root -p,输入密码即可.

②若没有数据库则需创建:create DATABASE test;
③再使用数据库test, use test;
④导入备份文件. source /home/bak/2015-09-10/test.sql;

这样数据库test的数据就还原成原先备份的数据了.

六、常见问题处理

1Linux启动Mysql出现command not found的解决方法

当在Linux中安装Mysql后,不管是在根目录下还是在安装mysql的bin下执行:

mysql -uroot -p

结果都是command not found,如下图所示:

问题原因,linux默认启动Mysql,会在根目录下的bin中去启动,因此需要创建一个软连接

执行以下命令:ln -s /usr/local/mysql/bin/mysql /usr/bin

然后在根目录下在此执行启动mysql的命令:mysql -uroot -p

就可以启动了

2Linux下设置MySql自动启动

2.1、将服务文件拷贝到init.d下,并重命名为mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

2.2、赋予可执行权限

chmod +x /etc/init.d/mysqld

2.3、添加服务

chkconfig --add mysqld

2.4、显示服务列表

chkconfig --list

 

如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

chkconfig --level 345 mysqld on

2.5、重启电脑

reboot

2.6、验证

netstat -na | grep 3306

如果看到有监听说明服务启动了

3、忘记root密码,重置MySql用户 root密码

重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

假设我们使用的是root账户。

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

#vim /etc/my.cnf(注:windows下修改的是my.ini)

在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(vim编辑状态下直接输入该命令可搜索文本内容)

[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

https://images2015.cnblogs.com/blog/862200/201607/862200-20160727153846934-2016310105.png

保存文档并退出:

#:wq
2.
接下来我们需要重启MySQL

/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)

https://images2015.cnblogs.com/blog/862200/201607/862200-20160727154310153-619345773.png

3.重启之后输入#mysql即可进入mysql

 

MySQL日常维护参考手册_第1张图片

4.接下来就是用sql来修改root的密码

mysql> use mysql;
mysql> update user set password=password("
你的新密码") where user="root";

语句(update mysql.user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
mysql> quit

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

MySQL日常维护参考手册_第2张图片

 网上有很多关于这个问题的解决说明,很多刚接触的朋友可能比较迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:

https://images2015.cnblogs.com/blog/862200/201607/862200-20160727155248684-2076378756.png

至于windows平台,去安装目录下找一下my.ini吧。

4、linux下中文乱码的解决办法

启动mysql 服务后执行,登录数据库:

mysql>> show variables like 'character%";#执行编码显示

+-------------------------+

|Variable_name | value l

+-------------------------+

l character_set_client | latin1l

l character_set_connection | latin1l

l character_set_database | latin1 l

l character_set_filesystem | binary l

l character_set_results | latin1l

l character_set_server | latin1 l

lcharacter_set_system | utf8 l

l character_sets_dir |/usr/share/mysql/charsets/l

找到客户端配置[client]在下面添加

#默认字符集为utf8

default-character-set=utf8

再找到[mysqld]添加

#默认字符集为utf8

default-character-set=utf8

character-set-server=utf8

init_connect='SET NAMES utf8’

重新启动mysql服务

service mysql(或者是自定义的服务名) restart

可能在修改之后,仍是乱码,需要重新创建数据库。

create database数据库名default character utf8;

你可能感兴趣的:(mysql,数据库)