[root@szxdb etc]# service mysqld start
重启:
Service mysqld restart
停止:
Service mysqld stop
/etc/inint.d/mysqld start
重启:
/etc/init.d/mysqld restart
停止:
/etc/init.d/mysqld stop
mysqld_safe --defaults-file=/etc/my.cnf --user=root &
方式一:mysql -u用户名 -p密码
注意:u 和用户名, p 和用户名之间没有空格
方式二:后输入密码方式:
mysql -uroot -p
可以看到mysql的版本为5.7.17
退出mysql服务:exit或quit
exit
方式一:
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
查看最大连接数
show variables like '%max_connections%';
修改最大连接数
set GLOBAL max_connections = 2000;
方法一:status;
方法二:select version();
show databases;
use 数据库名;
show tables;
desc 表名;
语法:
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 表中可以查看到,密码经过了加密。
用户创建之后,没什么权限!需要给用户授权
语法:
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;
语法:
REVOKE 权限 1, 权限 2... ON 数据库.表名
revoke all on test.* from 'user1'@'localhost'; '用户名'@'主机
名';
关键字说明:
撤销 user1 用户对 test 数据库所有表的操作的权限
revoke all on test.* from 'user1'@'localhost';
注:用户名和主机名要与创建时相同,各自要加上单引号
语法:
SHOW GRANTS FOR '用户名'@'主机名';
查看 user1 用户的权限
注:usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。
语法
DROP USER '用户名'@'主机名';
删除 user2
drop user 'user2'@'%';
语法
mysqladmin -uroot -p password 新密码
注意:需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。
1)、 将 root 管理员的新密码改成 123456
2)、 要求输入旧密码
3) 、使用新密码登录
语法:
set password for '用户名'@'主机名' = password('新密码');
注意:需要在登陆 MySQL 的情况下操作,新密码要加单引号。
将'user1'@'localhost'的密码改成'666666'
使用新密码登录,老密码登录不了
一. 备份数据库(如: 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中.
二、脚本备份(参考如下文档)
三. 还原数据库(如: 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的数据就还原成原先备份的数据了.
当在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
就可以启动了
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
如果看到有监听说明服务启动了
重置密码解决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”用来跳过密码验证的过程,如下图所示:
保存文档并退出:
#:wq
2.接下来我们需要重启MySQL:
/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
3.重启之后输入#mysql即可进入mysql。
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。大功告成!
网上有很多关于这个问题的解决说明,很多刚接触的朋友可能比较迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:
至于windows平台,去安装目录下找一下my.ini吧。
启动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;