如果是下载安装包安装
1、 安装新版mysql前,需将系统自带的mariadb-lib卸载 : rpm -qa|grep mariadb(查看)
rpm -e --nodeps XXX (卸载)
2、解压命令:tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
3、为了避免出现权限问题,给mysql解压文件所在目录赋予最大权限: chmod -R 777 mysql
4、 严格按照顺序安装:mysql-community-common-5.7.29-1.el7.x86_64.rpm、mysql-community-libs-5.7.29-1.el7.x86_64.rpm、mysql-community-client-5.7.29-1.el7.x86_64.rpm、mysql-community-server-5.7.29-1.el7.x86_64.rpm这四个包
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
如果安装过程中出现这个错误就在后面添加 --force --nodeps,这可能是由于yum安装了旧版本的GPG keys造成的
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm --force --nodeps
5、数据库配置
vim /etc/my.cnf
其中添加
skip-grant-tables
character_set_server=utf8
init_connect='SET NAMES utf8'
6、启动
设置开机启动 :systemctl start mysqld.service
启动:mysql
查看当前密码: grep "password" /var/log/mysqld.log
登录mysql:mysql -u[用户名] -p[密码] 不能有空格
7、设置密码
密码降级:set global validate_password_policy=0;
设置密码: set password for root@localhost = password('123456';)
远程授权:grant all on *.* to root@'%' identified by '[密码]'
刷新:flush privileges;
update mysql.user set authentication_string=password('Huawei12#$') where user='root';
立即生效(flush privileges;)
退出mysql并停止mysql服务(systemctl stop ; mysqld.service)
编辑my.cnf配置文件将:skip-grant-tables这一行注释掉
重启mysql服务
systemctl start mysqld.service
登陆mysql (mysql -u root -p Huawei12#$)
8、开放端口
开放端口 firewall -cmd --zone=public --add -port=3306/tcp --permanent
重启防火墙 firewall-cmd --reload
9、测试远程登陆
grant all privileges on *.* to 'root'@'%' identified by 'Huawei12#$' with grant option;
一、检查系统是否安装其他版本的MYSQL数据
#yum list installed | grep mysql
#yum -y remove mysql-libs.x86_64
二、安装及配置
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
# rpm -ivh mysql-community-release-el6-5.noarch.rpm
# yum repolist all | grep mysql
安装MYSQL数据库
# yum install mysql-community-server -y
设置为开机启动(2、3、4都是on代表开机自动启动)
# chkconfig --list | grep mysqld
# chkconfig mysqld on
三、设置远程root
启动mysql
# service mysqld start
设置root密码
# mysql_secure_installation
登陆root账号
# mysql -uroot -p
建立远程root用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
mysql> flush privileges;
四、设置utf-8编码
查看mysql原本编码:
mysql> show variables like 'character%';
设置编码
# vi /etc/my.cnf
如下(少补):
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode='NO_ENGINE_SUBSTITUTION'
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
重启mysql
# service mysqld restart
再次查看编码:
# mysql -uroot -p
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
修改端口
主要有三个原因:
1、mysql授权表里没有远程机器的权限,及需要在授权表mysql.user添加
grant all privileges on *.* to 'root'@'远程登陆IP' identified by '远程登陆密码'
flush privileges;
2、网络不通,这个就不说了。
3、防火墙禁止3306端口,以iptable为例
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306-j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
查看所有打开的端口: netstat -anp(全部不建议使用) 使用:iptables -L -n
查询指定端口是否已开 firewall-cmd --query-port=8080/tcp
开端口 iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
保存:service iptables restart
重启:systemctl restart firewalld.service
ps: iptables设置
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop