mysql insto安装教程_MySQL的安装与基本配置

1.1 MySQL安装与基本配置(centos 7.3)

安装参考网址:https://www.cnblogs.com/jorzy/p/8455519.html

1、查看系统中是否已安装 MySQL 服务:以下提供两种方式

rpm -qa | grep mysql

yum list installed | grep mysql

2、如果已安装则删除 MySQL 及其依赖的包

yum -y remove mysql-libs.x86_64

3、下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

4、安装 mysql57-community-release-el7-8.noarch.rpm

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

安装完后,得到如下两个包:

mysql-community.repo

mysql-community-source.repo

5、安装 MySQL,出现提示的话,一路 Y 到底

yum install mysql-server

6、安装mysql所需的库和包含文件

yum -y install mysql-devel

7、获取mysql初始密码

service mysqld start

grep "password" /var/log/mysqld.log

8、mysql管理常用命令

systemctl status mysqld

systemctl start mysqld

systemctl stop mysqld

9、开机启动

systemctl enable mysqld

systemctl daemon-reload

10、Mysql安装成功后,默认的root用户密码为空,可以直接登录

mysql -uroot -p

mysqladmin -u root password "1"                 # 给root用户配置密码:1

mysql -uroot -p1                                          # 配置完密码后必须使用密码登录

1.2 修改MySQL默认字符集和引擎

1.安装完MySQL使用外键关联创建表失败,原因是默认引擎不对

2.向MySQL插入中文发现显示乱码,原因是默认字符集不对

show variables like 'character%';                                      #查看MySQL默认字符集

3.解决方法是修改MySQL配置文件vim /etc/my.cnf

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

vim /etc/my.cnf #下面的内容都是自己添加的内容

[mysqld]

default-storage-engine=INNODB

default_character_set=utf8

character_set_server=utf8

[mysqld_safe]

default-character-set =utf8

[client]

default-character-set =utf8

[mysql.server]

default-character-set =utf8

[mysql]

default-character-set = utf8

vim /etc/my.cnf

4. 面试题:你的数据库用什么存储引擎?区别是?

1. 常见的有MyISAM和InnoDB。

2. InnoDB:  支持外键约束,支持事务。对索引都是单独处理的,无需引用索引。

3. MyISAM: 不支持外键约束,不支持事务,对数据大批量导入时,它会边插入数据边建索引。

所以为了提高执行效率,应该先禁用索引,在完全导入后再开启索引

1.3 MySQL创建用户与授权

1、创建用户

1.命令 :CREATEUSER 'username'@'host' IDENTIFIEDBY 'password';

1、username: 你将创建的用户名

2、host:   指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

3、password:  该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

2、例子

1、CREATE USER 'tom'@'localhost' IDENTIFIED BY '123456';         #允许tom从localhost登录

2、CREATE USER 'jack'@'1.1.1.100' IDENTIFIED BY '123456';          #允许jack从1.1.1.100主机登录

3、CREATE USER 'fly'@'%' IDENTIFIED BY '123456';                         #允许fly从任意主机登录

4、mysql -h 1.1.1.3 -P 3306 -u jack -p123456                           # jack从1.1.1.100登录MySQL

5、update mysql.user set authentication_string=PASSWORD('Chnsys@2016') where user='opwf';             # 修改用户密码

2、授权

1.命令 : GRANT privileges ON databasename.tablename TO 'username'@'host'

1、privileges:     用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

2、databasename:   数据库名

3、tablename:   表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

2.例子

1、GRANT SELECT, INSERT ON testdb.student TO 'tom'@'%';           # 授权tom对testdb数据库有查询和插入权限

2、GRANT ALL ON *.* TO 'jack'@'%';                                                # 授权jack对所有数据库、所有表所有权限

3、查看权限

1、show grants for 'tom'@'localhost';                                                 # 查看用户tom在主机1.1.1.100上的权限

2、show grants for root;                                                                      # 查看root用户所有权限

4、撤销权限

1、REVOKE all ON *.* FROM 'tom'@'%';                                          # 撤销tom对所有数据库、所有表、的所有权限

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#1、创建用户

create user 'mup'@'%' identified by 'mup_yiducloud';#2、授予mup用户授予对mup数据库的操作权限

GRANT ALL ON mup.* TO 'mup'@'%';

flush privileges;

select host,userfrommysql.user;#3、删除用户

Delete FROM mysql.user Where User='mup' and Host=”localhost”;

Delete FROM mysql.user Where User='mup';#4、修改root密码

update mysql.user set authentication_string=password('mysqlRootPwd') where user='root' and Host = 'localhost';

mysql创建与授权常用操作

1.4 mysql常见报错

1、ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

#mysql -u root -p #登录#mysql>set global validate_password_policy=0; #密码强度设为最低等级#mysql>set global validate_password_length=4; #密码允许最小长度为4#mysql>flush privileges; #更新授权表,生效

2、ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'bsp'

1. 报错原因

1. 其实应该可以说基本上都是因为my.cnf 文件里面有skip-name-resolve参数这个参数导致这不能解析hostname或其它方式的登录;

2. 所以登录任何用户,匹配的时候不走root@'localhost',或者127.0.0.1或者::1而是 一个劲的走root@'%';

2、解决方法

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#1、查看一下每种方式下的root用户是否有grant权限

mysql> select Grant_priv from user where Host='127.0.0.1';+------------+

| Grant_priv |

+------------+

| N |

+------------+

1 row in set (0.00sec)

mysql> select Grant_priv from user where Host='localhost';+------------+

| Grant_priv |

+------------+

| N |

+------------+

1 row in set (0.01sec)#2、在不重启MySQL服务的情况下,只需要在登录的时候加上-h参数

(a). /usr/local/mysql/bin/mysql -uroot -p123456 -h localhost

(b)./usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1

#3、更改用户权限让其拥有grant权限

mysql> update user set Grant_priv='Y' where Host='127.0.0.1';

mysql> update user set Grant_priv='Y' where Host='localhost';

mysql>flush privileges;#4、退出重新用root登录,然后再操作

解决方法

3、ERROR 1045 (28000): Access denied for user 'opwf'@'localhost' (using password: YES)

参考地址:https://www.cnblogs.com/bk7788/p/6388562.html

1. 报错原因

1. 大意就是你有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户,然后执行 FLUSH PRIVILEGES;

DELETE FROM mysql.user WHERE user='';

FLUSH PRIVILEGES

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值