安装mysql服务器及常见错误处理

这是一篇在centos 6 Linux系统上安装Mysql server的记录。

https://dev.mysql.com/downloads 下载

安装mysql服务
rpm -ivh MySQL-server-5.6.42-1.el6.i686.rpm
安装mysql命令行客户端
rpm -ivh MySQL-client-5.5.62-1.el6.i686.rpm

启动
service mysql start

查看端口
netstat -anp |grep 3306

修改root密码/忘记root密码
service mysql stop

# mysqld_safe --skip-grant-tables &

# mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("123") WHERE user='root';
mysql> flush privileges;
mysql> exit;


ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supp

解决办法:

service mysql stop
先通过跳过授权表的方式启动数据库:

mysqld_safe --skip-grant-tables --skip-networking &

这样就可以免密码登录了。
mysql
然后修改该用户密码过期策略为N:

use mysql

update user set password_expired="N" where user="root";

flush privileges;

exit

重启数据库即可。

service mysql restart


1.新建用户

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为: user01 密码为: 12345656 的用户。

2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(Data01)
mysql>create database Data01;
//授权user01用户拥有user01数据库的所有权限。
>grant all privileges on Data01.* to user01@localhost identified by '123456';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

---------------------------------------------------------------------------
/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on user01DB.* to user01@localhost identified by '123456';
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="user01" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database user01DB;

4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="user01" and Host="localhost";
mysql>flush privileges;
===========================================================================
然后登录一下。

mysql>exit;
@>mysql -u user01 -p
@>输入密码
mysql>登录成功
//显示所有数据库
mysql> show databases;
//切换数据库
mysql> use Data01

//新建表测试

CREATE TABLE IF NOT EXISTS `Player` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`playerID` int(11) NOT NULL COMMENT '玩家ID'
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

//查看表结构
mysql> desc Player;

+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| playerID | int(11) | NO | | NULL | |
+------------+----------+------+-----+---------+----------------+

//插入数据测试
mysql> INSERT INTO `Player` (`ID`, `playerID`) VALUES (NULL, '100001');

一些错误处理


报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
1。 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;

2、mysql>FLUSH PRIVILEGES //修改生效

3、mysql>EXIT //退出MySQL服务器

这样就可以在其它任何的主机上以root身份登录啦!

解决 SELECT command denied to user 'root'@'192.168.1.47' for table 'user'的报错。mysql用户权限修改,表权限修改。

select * from mysql.user;

修改权限的SQL语句是:(语句你自己根据自己ip修改)

UPDATE mysql.user SET select_priv='Y' , insert_priv='Y', update_priv='Y', DELETE_priv='Y' WHERE HOST='%';
FLUSH PRIVILEGES;

猜你喜欢

转载自www.cnblogs.com/summer010/p/10528967.html
今日推荐