mysql问题总结
mysql问题总结
1.手动安装
添加用户和组
groupadd mysql和useradd -r -g mysql mysql
cd /usr/local/mysql //转到mysql目录下
chown -R mysql:mysql ./ //修改当前目录为mysql用户
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库
chown -R mysql:mysql /tmp/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /tmp/mysql /usr/local/mysql
初始化密码
初始化时并没有出现 初始密码,因此需要修改密码。
注释 skip-grant-tables,可以使用无密码登录
启动 mysql
1.清空密码
use mysql;
update user set authentication_string='' where user='root';
2.无密码登录
mysql -u root -p
输入密码是直接回车。
3.文件改密码
/etc/init.d/mysql restart --init-file=/usr/local/bin/mysql-init
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';
这样就修改好密码了。
cd support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
mysql 添加用户、修改权限,修改登录权限ip
2019年02月24日 22:29:42 每天加点分 阅读数 620
一、添加用户
新增用户会有两种方式的,一种是使用create命令,另一种是直接回使用grant 命令
1、create user 名字@登陆地址 identified by "密码";
2、grant select,update(权限) on 数据库名.表名 to 用户@登录地址 identified by '密码';
3、insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
登陆地址host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
在grant 中 privileges表示用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*。
二、授权和取消授权
原本grant就是用来授权的,只是当找不到授权用户的时候会重新创建一个用户,这个时候就需要注意将密码 加上。
使用grant授权实质是在mysql数据库的user表中增加一列,收回权限实质是从表中删除一列。所以授权也可以替换为删除表数据来代替,授权收权实质是操作mysql的user表。查看mysql.user表的结构:(windows与linux不同的是password列名改为authentication_string)
1、grant privileges on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';
2、grant select,insert on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';
3、grant all on *.* to '用户名'@'登录地址' identified by '密码';
4、grant all on 数据库名.* to '用户名'@'登录地址' identified by '密码';
22、grant all on mybow.* to 'qinanhg'@'%'
--让用户 拥有授权 权限
5、grant privilege on 数据库名.* to '用户名'@'登录地址' with grant option;
--取消授权
6、revoke all on *.* from '用户名'@'登录地址';
三、查看用户信息
当然有查看全部的用户信息和单个的用户信息
1、select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
2、select * from mysql.user where user='用户名';
3、show grants for '用户名'@'登录地址(%表示远程登录)';
--查看当前用户的权限
4、show grants;
--查看用户表的结构
5、show mysql.user
四、修改用户和删除用户
--修改用户密码
1、set password for 'username'@'host' = password('newpassword');
--当前用户修改自己密码
2、set password = passw ("newpassword");
--使用update 更新用户
3、update user set password=password('123') where user='root' and host='localhost';
flush privileges;
--删除用户
4、delete from mysql.user where user='root' and host='%';
flush privileges;
五、有关远程登录mysql的问题
我们会发现其实数据库是分为本地的和远程的,本地的数据库即为在本地服务器安装的例如安装的mysql,sql Server等,远程的当然是部署在远程服务器上的。
当给创建用户账号的时候,如果create user 用户@登陆地址 identified by "密码"; 登录地址指定是host,或者某个地址就是表示该用户在局域网或互联网中以IP方式访问了。但是这种情况有可能在其他服务器登不上,这时候就需要登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"。
--先选择mysql数据库的user表
1、use mysql;
--再修改登录的ip
2、update user set host = '%' where user = '用户名';
当然你可以选择用授权的方式来给需要的用户从任何主机连接到mysql服务器:
-- 可以从任何地方登录数据库
1、grant all privilege on *.* to '用户'@'%' identified by '密码' with grant option;
2、flush privilege;
--允许用户从ip为192.168.1.1的主机连接到mysql服务器,并使用mypassword作为密码
3、grant all privilege on *.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
4、flush privilege;
--用户从ip为192.168.1.1的主机连接到mysql服务器的test数据库,并使用mypassword作为密码
5、grant all privilege on test.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
6、flush privilege;
还有修改mysql配置文件的方法即 bind-address= 127.0.0.1注释掉即可------>在my.ini中找到bind-address=0.0.0.0就是所有IP地址都能访问,也可以不要这个属性,具体情况我也没有尝试。
mysql-workbench error
错误信息
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
这是 MySQL 的问题,不是客户端问题,
所以不管是用 Navicat Premium 还是 Sequel Pro 连接 MySQL,会碰到一样的错误。
解决方法
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
1.手动安装
添加用户和组
groupadd mysql和useradd -r -g mysql mysql
cd /usr/local/mysql //转到mysql目录下
chown -R mysql:mysql ./ //修改当前目录为mysql用户
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库
chown -R mysql:mysql /tmp/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /tmp/mysql /usr/local/mysql
初始化密码
初始化时并没有出现 初始密码,因此需要修改密码。
注释 skip-grant-tables,可以使用无密码登录
启动 mysql
1.清空密码
use mysql;
update user set authentication_string='' where user='root';
2.无密码登录
mysql -u root -p
输入密码是直接回车。
3.文件改密码
/etc/init.d/mysql restart --init-file=/usr/local/bin/mysql-init
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';
这样就修改好密码了。
cd support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
mysql 添加用户、修改权限,修改登录权限ip
2019年02月24日 22:29:42 每天加点分 阅读数 620
一、添加用户
新增用户会有两种方式的,一种是使用create命令,另一种是直接回使用grant 命令
1、create user 名字@登陆地址 identified by "密码";
2、grant select,update(权限) on 数据库名.表名 to 用户@登录地址 identified by '密码';
3、insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
登陆地址host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
在grant 中 privileges表示用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*。
二、授权和取消授权
原本grant就是用来授权的,只是当找不到授权用户的时候会重新创建一个用户,这个时候就需要注意将密码 加上。
使用grant授权实质是在mysql数据库的user表中增加一列,收回权限实质是从表中删除一列。所以授权也可以替换为删除表数据来代替,授权收权实质是操作mysql的user表。查看mysql.user表的结构:(windows与linux不同的是password列名改为authentication_string)
1、grant privileges on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';
2、grant select,insert on 数据库名.表名 to '用户名'@'登录地址' identified by '密码';
3、grant all on *.* to '用户名'@'登录地址' identified by '密码';
4、grant all on 数据库名.* to '用户名'@'登录地址' identified by '密码';
22、grant all on mybow.* to 'qinanhg'@'%'
--让用户 拥有授权 权限
5、grant privilege on 数据库名.* to '用户名'@'登录地址' with grant option;
--取消授权
6、revoke all on *.* from '用户名'@'登录地址';
三、查看用户信息
当然有查看全部的用户信息和单个的用户信息
1、select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
2、select * from mysql.user where user='用户名';
3、show grants for '用户名'@'登录地址(%表示远程登录)';
--查看当前用户的权限
4、show grants;
--查看用户表的结构
5、show mysql.user
四、修改用户和删除用户
--修改用户密码
1、set password for 'username'@'host' = password('newpassword');
--当前用户修改自己密码
2、set password = passw ("newpassword");
--使用update 更新用户
3、update user set password=password('123') where user='root' and host='localhost';
flush privileges;
--删除用户
4、delete from mysql.user where user='root' and host='%';
flush privileges;
五、有关远程登录mysql的问题
我们会发现其实数据库是分为本地的和远程的,本地的数据库即为在本地服务器安装的例如安装的mysql,sql Server等,远程的当然是部署在远程服务器上的。
当给创建用户账号的时候,如果create user 用户@登陆地址 identified by "密码"; 登录地址指定是host,或者某个地址就是表示该用户在局域网或互联网中以IP方式访问了。但是这种情况有可能在其他服务器登不上,这时候就需要登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"。
--先选择mysql数据库的user表
1、use mysql;
--再修改登录的ip
2、update user set host = '%' where user = '用户名';
当然你可以选择用授权的方式来给需要的用户从任何主机连接到mysql服务器:
-- 可以从任何地方登录数据库
1、grant all privilege on *.* to '用户'@'%' identified by '密码' with grant option;
2、flush privilege;
--允许用户从ip为192.168.1.1的主机连接到mysql服务器,并使用mypassword作为密码
3、grant all privilege on *.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
4、flush privilege;
--用户从ip为192.168.1.1的主机连接到mysql服务器的test数据库,并使用mypassword作为密码
5、grant all privilege on test.* to '用户'@'192.168.1.1' identified by '密码' with grant option;
6、flush privilege;
还有修改mysql配置文件的方法即 bind-address= 127.0.0.1注释掉即可------>在my.ini中找到bind-address=0.0.0.0就是所有IP地址都能访问,也可以不要这个属性,具体情况我也没有尝试。
mysql-workbench error
错误信息
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
这是 MySQL 的问题,不是客户端问题,
所以不管是用 Navicat Premium 还是 Sequel Pro 连接 MySQL,会碰到一样的错误。
解决方法
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
Comments