下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
linux MySQL5.7 rpm安装
删除旧包:
# rpm -qa | grep -i mysql # rpm -ev mysql-libs-* --nodeps
安装rpm包:
# rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm # rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm # rpm -ivh mysql-community-client-5.7.17-1.el7.x86_64.rpm # rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm
启动、停止:
# service mysqld start
# service mysqld stop
# service mysqld status
初始随机密码:
# cat /var/log/mysqld.log | more
修改初始密码及授权远程访问:
# mysql -uroot -p mysql> set password='Pwd@123456'; mysql> grant all privileges on *.* to 'root'@'%' identified by 'Pwd@123456';
密码复杂度属性:
mysql> set global validate_password_policy=0;
validate_password_policy有以下取值:(默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。)
Policy | Tests Performed |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
修改数据目录:
新目录需要给mysql用户授权,mysqld_safe日志文件授权,关闭selinux(没找到相关策略设置的方法)
# mkdir /data/mysql/data # mv /var/lib/mysql/* /data/mysql/data/ # mkdir /data/mysql/log # chown mysql:mysql -R /data/mysql # touch mysqld_safe.log # chown mysql:mysql mysqld_safe.log # vi /etc/my.cnf /** [client] port = 3306 socket = /data/mysql/log/mysql.sock default-character-set=utf8 [mysql] no-auto-rehash socket=/data/mysql/log/mysql.sock default-character-set=utf8 [mysqld] port = 3306 socket = /data/mysql/log/mysql.sock character-set-server=utf8 lower_case_table_names=1 basedir=/usr datadir=/data/mysql/data log-error=/data/mysql/log/error.log pid-file=/data/mysql/log/mysql.pid init_connect='SET NAMES utf8' symbolic-links=0 skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M [mysqld_safe] log-error=/data/mysql/log/mysqld_safe.log */ # getenforce Enforcing # setenforce 0 # vi /etc/selinux/config /** # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted */ # service mysqld start
其他命令:
# mysqladmin -u root -p password mysql> select version(); # chkconfig --list # chkconfig --level 345 mysqld on # netstat -na | grep 3306 mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password'; # service mysqld --initedialize Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload} # service mysqld start Initializing MySQL database: [ OK ] Installing validate password plugin: [ OK ] Starting mysqld: [ OK ]
yum 和 rpm安装mysql彻底删除
1、yum方式安装的MySQL
$ yum remove mysql mysql-server mysql-libs compat-mysql51
$ rm -rf /var/lib/mysq
$ rm /etc/my.cnf
查看是否还有mysql软件:
$ rpm -qa|grep mysql
如果存在的话,继续删除即可,删除方式:yum remove + 【名字】。
2、rpm方式安装的mysql
a)查看系统中是否以rpm包安装的mysql:
[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
b)卸载mysql
[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686
c)删除mysql服务
[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql
d)删除分散mysql文件夹
[root@localhost local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql
清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
通过以上几步,mysql应该已经完全卸载干净了。
MySQL5.7 添加用户、删除用户与授权
mysql -uroot -proot
MySQL5.7 mysql.user表没有password字段改 authentication_string;
一. 创建用户:
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'dog2'@'localhost' IDENTIFIED BY '';
PS:username - 你将创建的用户名,
host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
二.授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON mq.* TO 'dog'@'localhost';
三.创建用户同时授权
mysql> grant all privileges on mq.* to test@localhost identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
PS:必须执行flush privileges;
否则登录时提示:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES )
四.设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
例子: SET PASSWORD FOR 'dog2'@'localhost' = PASSWORD("dog");
五.撤销用户权限
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子: REVOKE SELECT ON mq.* FROM 'dog2'@'localhost';
PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.
具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.
六.删除用户
命令: DROP USER 'username'@'host';
七.查看用户的授权
mysql> show grants for dog@localhost;
+---------------------------------------------+
| Grants for dog@localhost |
+---------------------------------------------+
| GRANT USAGE ON *.* TO 'dog'@'localhost' |
| GRANT INSERT ON `mq`.* TO 'dog'@'localhost' |
+---------------------------------------------+
2 rows in set (0.00 sec)
PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干
CentOS 7下启动、关闭、重启、查看MySQL服务
1.启动命令
[root@xufeng Desktop]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
2.关闭命令
[root@xufeng ~]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
3.重启命令
[root@xufeng ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
4.查看服务状态
[root@xufeng ~]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-07-18 22:34:06 EDT; 1min 11s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 4366 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 4345 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 4370 (mysqld)
CGroup: /system.slice/mysqld.service
└─4370 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Jul 18 22:34:04 xufeng.goertek.com systemd[1]: Starting MySQL Server...
Jul 18 22:34:06 xufeng.goertek.com systemd[1]: Started MySQL Server.
5.查看MySql系统配置
[root@xufeng ~]# cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
---------------------
作者:xufengzhu
来源:优快云
原文:https://blog.youkuaiyun.com/xufengzhu/article/details/81110982
版权声明:本文为博主原创文章,转载请附上博文链接!