mysql-玩转数据-centos7下mysql的安装
环境变更,本文档部分资源无法找到
一、mysql的安装
我们在大数据环境下,常常用到的关系型数据mysql,如何在linux上进行mysql安装呢?我这里运用的是CentOS7的linux环境。
在CentOS中默认安装有MariaDB,这个是MySQL的分支,系统中安装MySQL,直接覆盖掉MariaDB。
准备:如果没有安装wget,以centos7为例
http://mirrors.163.com/centos/7/os/x86_64/Packages/ 下载wget安装包 wget-1.14-18.el7_6.1.x86_64.rpm 上传至centos对应用户下
[lighthouse@VM-0-8-centos ~]$ chmod 777 wget-1.14-18.el7_6.1.x86_64.rpm
[lighthouse@VM-0-8-centos ~]$ sudo rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
1 下载并安装MySQL官方的 Yum Repository
如果权限不够,前面加 sudo
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就开始安装MySQL服务器。
[root@localhost ~]# yum -y install mysql-community-server
若报错:
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-client-5.7.38-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
Failing package is: mysql-community-client-5.7.38-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决方法:需要禁掉GPG验证检查
指令为
[root@localhost ~]# yum -y install mysql-community-server --nogpgcheck
2 MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl status mysqld.service
运行状态如下:
mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html
启动mysql
[root@localhost ~]# sudo service mysqld start
或
[root@localhost ~]#sudo /bin/systemctl start mysqld.service
关闭mysql
[root@localhost ~]# sudo service mysqld stop
查看日志
[root@localhost ~]# cat /var/log/mysqld.log
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
密码就是
2021-12-25T03:14:11.704034Z 1 [Note] A temporary password is generated for root@localhost: x:1,0IeO>B!j
localhost:后面的一串初始随机生成的一串符号
如下命令进入数据库修改初始密码:
[root@localhost ~]# mysql -uroot -p
输入初始密码(是上面图片最后面的 x:1,0IeO>B!j),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功。比如:Mysql123456#
3 开启mysql的远程访问
改表法
mysql -u root -p
进入到mysql数据库中:
use mysql;
select host from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
授权法
执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
然后再输入下面两行命令
mysql> flush privileges;
mysql> exit
4 为firewalld添加开放端口
如果没有关闭防火墙,需要添加mysql端口3306和Tomcat端口8080,我以上环境大数据集群已经关闭了防火墙,所以可以不需要以下步骤。
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
然后再重新载入
[root@localhost ~]# firewall-cmd --reload
5 更改mysql的语言
首先重新登录mysql,然后输入status:
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
Server characterset: latin1
Db characterset: latin1
因此我们先退出mysql,然后再到、etc目录下的my.cnf文件下修改一下文件内容
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
进入文件后,新增四行代码:
保存更改后的my.cnf文件后,重启下mysql(mysql -uroot -p 回车,Sunbo:123),然后输入status再次查看,你就会发现变化啦
最后,到Windows下用cmd命令启动mysql
mysql -h 192.168.80.2 -P 3306 -u root -p
授予原程连接权限
mysql> grant all privileges on *.* to 'root'@'hadoop1' identified by 'Sunbo:123' with grant option;
mysql>flush privileges;