cat /etc/redhat-release
显示:
CentOS Linux release 7.2.1511 (Core)
根据Linux发行版本(CentOS、Fedora都属于红帽系),从mysql官方(http://dev.mysql.com/downloads/repo/yum/)获取Yum Repository。
wget -i http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
安装完MySQL的Yum Repository,每次执行yum update都会检查MySQL是否更新。
yum -y install mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
安装完成:
Running transaction
Installing : mysql-community-common-5.7.17-1.el7.x86_64 1/7
Installing : mysql-community-libs-5.7.17-1.el7.x86_64 2/7
Installing : mysql-community-client-5.7.17-1.el7.x86_64 3/7
Installing : net-tools-2.0-0.17.20131004git.el7.x86_64 4/7
Installing : mysql-community-server-5.7.17-1.el7.x86_64 5/7
Installing : mysql-community-libs-compat-5.7.17-1.el7.x86_64 6/7
Erasing : 1:mariadb-libs-5.5.44-2.el7.centos.x86_64 7/7
Verifying : mysql-community-common-5.7.17-1.el7.x86_64 1/7
Verifying : mysql-community-server-5.7.17-1.el7.x86_64 2/7
Verifying : net-tools-2.0-0.17.20131004git.el7.x86_64 3/7
Verifying : mysql-community-libs-5.7.17-1.el7.x86_64 4/7
Verifying : mysql-community-libs-compat-5.7.17-1.el7.x86_64 5/7
Verifying : mysql-community-client-5.7.17-1.el7.x86_64 6/7
Verifying : 1:mariadb-libs-5.5.44-2.el7.centos.x86_64 7/7
Installed:
mysql-community-libs.x86_64 0:5.7.17-1.el7 mysql-community-libs-compat.x86_64 0:5.7.17-1.el7 mysql-community-server.x86_64 0:5.7.17-1.el7
Dependency Installed:
mysql-community-client.x86_64 0:5.7.17-1.el7 mysql-community-common.x86_64 0:5.7.17-1.el7 net-tools.x86_64 0:2.0-0.17.20131004git.el7
Replaced:
mariadb-libs.x86_64 1:5.5.44-2.el7.centos
Complete!
systemctl start mysqld.service
然后使用命令sudo systemctl status mysqld.service
查看MySQL数据库启动后的服务状态:
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2017-02-10 01:46:00 GMT; 6min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 20655 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 20581 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 20659 (mysqld)
CGroup: /system.slice/mysqld.service
└─20659 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Feb 10 01:45:35 localhost.localdomain systemd[1]: Starting MySQL Server...
Feb 10 01:46:00 localhost.localdomain systemd[1]: Started MySQL Server.
使用YUM安装并启动MySQL服务后,MySQL进程会自动在进程日志中打印root用户的初始密码:
#######从mysql进程日志中获取root用户的初始密码:ofX20zWOu6:o
grep "password" /var/log/mysqld.log
2017-02-10T01:45:38.393132Z 1 [Note] A temporary password is generated for root@localhost: ofX20zWOu6:o
2017-02-10T01:53:54.809923Z 4 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-02-10T01:53:59.195263Z 5 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-02-10T01:58:50.900865Z 7 [Note] Access denied for user 'root'@'localhost' (using password: YES)
使用小节6中获取的root用户的初始密码,然后进行修改:
mysql -uroot -p
-h127.0.0.1
其中“-p”是参数,“rootpassword”,默认本地参数可忽略-P3306
其中“-P”是参数(注意大写),“3306”,默认本地参数可忽略-uroot
其中“-u”是参数,“root” 是用户名。-prootpassword
其中“-p”是参数,“rootpassword” 是用户名。Commands end with ; or \g.
命令的结束符,用“;”或者“\g”符号结束,但是冒号结束退出是不行的。Your MySQL connection id is 99
其中 id 表示客户端的连接 ID,该数据记录了 MySQL 服务到目前为止的连接次数,每次新连接都会自动加 1。由于数据库服务是我安装了好久的,所以当前 ID 值为 99。Server version: 5.7.14 MySQL
MySQL的版本。Community Server (GPL)
表示 MySQL 软件是社区版。Type 'help;' or '\h' for help.
表示输入 “help;” 或者 “\h” 命令可以查看帮助信息。Type '\c' to clear the current input statement.
表示输入“\c” 命令可以清除前面的命令。
你只需要在mysql>
命令中输入 SQL 语句,同时并以分号“;”结束。最后摁Enter
键即可操作 MySQL软件。
当然,具体的版本和连接信息可能不同,但都可以使用这个实用程序。请注意:
- 命令输入在
mysql>
之后; - 用
q\
、quit
、exit
三种命令可以退出命令行实用程序; - 帮助命令,输入
help
或\h
获得帮助,可以获得其它特定的命令的帮助(如,输入help select获得使用SELECT语句的帮助);
修改密码:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
报错:在Google上搜索下http://www.cnblogs.com/ivictor/p/5142809.html
发现与 validate_password插件有关,MySQL5.7是默认安装的。
-
当你报下面错误,提示您的密码不满足当前的策略要求。错误如下:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements # 或者 mysqladmin: unable to change password; error: 'Your password does not satisfy the current policy requirements'
解决方法:可以按照现有策略设置密码,也可以更改密码策略。
# 更改密码策略为LOW MySQL> set global validate_password_policy=0; # 更改密码长度 密码最小长度为4 MySQL> set global validate_password_length=4;
进入 MySQL 查看你的密码验证策略
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.00 sec)
- validate_password_check_user_name 不得使用当前会话用户名作为密码的一部分
- validate_password_dictionary_file 验证密码强度的字典文件路径
- validate_password_length 密码最小长度
- validate_password_mixed_case_count 密码至少要包含的小写字母个数和大写字母个数
- validate_password_number_count 密码至少要包含的数字个数
- validate_password_policy 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG
- 0/LOW:只检查长度。
- 1/MEDIUM:检查长度、数字、大小写、特殊字符。
- 2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
- validate_password_special_char_count 密码至少要包含的特殊字符数
至此,使用在CentOS7中使用YUM方法安装MySQL5.7.10数据库完毕。如下所示,可以使用新的root密码登陆MySQL了。
mysql -uroot -ppassword
命令:CREATE USER username IDENTIFIED BY 'password';
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符
%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
示例:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
GRANT privileges ON databasename.tablename TO 'username'@'host'
- privileges:用户的操作权限,如
SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示,如*.*
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;