这是一篇在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;