安装与创建远程登陆
首先:一般CentOS默认安装了mariadb,所以先查看是否安装mariadb,如果安装就需要先卸载mariadb
rpm -qa|grep mariadb
rpm -e mariadb-libs --nodeps
然后:*在/usr/local/目录下创建mysql文件夹
cd /cd usr/localmkdir mysql`
- 进入mysql文件夹内,下载mysql
cd mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
- 解压mysql到当前目录
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
- 安装mysql,依次执行下列命令
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm --nodeps --force
- 初始化和相关启动服务配置,依次执行下列命令
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
如果执行mysqld --initialize; 出现以下报错,先执行yum -y install numactl,再执行 yum install -y libaio
,再执行mysqld --initialize
如果执行systemctl start mysqld.service; 出现以下报错,先执行tail -f /var/log/mysqld.log查看错误日志
如果错误日志如下,执行cd /var/lib/mysql,执行rm -rf *删除所有文件,再执行systemctl start mysqld.service
- 查看数据库初始化密码
cat /var/log/mysqld.log | grep password
- 修改密码,密码需要数字,大小写字母,特殊符号
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';
设置密码永不过期.一定要记得执行下面代码刷新MySQL的系统权限相关表
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
- 创建远程访问用户,依次执行下列命令
create user 'root'@'%' identified with mysql_native_password by 'xxxxx';grant all privileges on *.* to 'root'@'%' with grant option;flush privileges;
vmware中的Centos 7.6安装mysql
- 下载mysql
https://downloads.mysql.com/archives/community/2023.3现在还能打开。
- 放到服务器后解压-C 放到指定文件夹,进入/usr/local把解压的目录更改一下名字
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C /usr/local
cd /usr/local
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
- 创建mysql 用户和用户组
>groupadd mysql
>useradd -r -g mysql mysql
- 创建数据文件夹data,并给权限
> mkdir -p /usr/local/data
# 给mysql用户权限
> chown -R mysql:mysql /usr/local/data
> chmod -R 755 /usr/local/data
- 给mysql的log目录权限
chown -R mysql:mysql /var/log
- 修改mysql配置文件 vi /etc/my.cnf
[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/data
socket=/tmp/mysql.sock
#socket=/data/mysql/mysql.sock
log-error=/var/log/mysql.err
pid-file=/var/log/mysql.pid
##character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
~
- 初始化mysql
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/data/ --user=mysql --initialize
- 查看mysql临时密码,并查看进程
cat /var/log/mysql.err
ps -ef|grep mysql
- 登录mysql并设置远程登录功能,修改root密码。
方式一:
bin]#./mysql -u root -p
password:随机密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xiong';
# 刷新权限
FLUSH PRIVILEGES;
#设置远程登录
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
方式二:创建root另一个用户%表示所有ip都可登录
> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
use mysql;
>update user set user.Host='%' where user.User='root';
>flush privileges;
rpm格式的5.x版本的mysql安装示例
1.下载MySQL-5.5.56-1.el7.x86_64.rpm-bundle.tar
----本人已在csdn下载了,放在了百度网盘中。
2.tar -xvf解压产生很多rpm式的文件,我们只安装server ,client.
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
//会有很多提示,要安装依赖包,要什么我们装什就完事了
yum install -y ***
3.查看安装成功否
rpm -qa|grep -i mysql
云主机上的问题
- 问题一
Starting MySQL. ERROR! The server quit without updating PID file (/var/log/mysql.pid).
项目应用情况注意:
-
IDEA中mysql8.x注意时区设置问题,不设置容易出错。
11 查看时区
show VARIABLES like '%time_zone%';
time_zone: 表示 MySQL 采用的是系统的时区。也就是说,如果在连接时没有设置时区信息,就会采用这个时区配置。
12仅修改当前会话的时区,停止会话失效(CET)set time_zone = '+8:00';
13 修改全局的时区配置
set globaltime_zone = '+8:00';
flush privileges;
大多数时候用到13.
windows安装mysql
- 下载下载地址:
https://dev.mysql.com/downloads/mysql/
-
解压到安装目录,在安装目录新建data目录和my.ini配置文件,并配置环境变量
my.ini文件
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\soft\\mysql-8.0.27-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\soft\\mysql-8.0.27-winx64\\data
# 允许最大连接数
max_connections=30
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
在环境变量中新建:MYSQL_HOME,在path中加入:%MYSQL_HOME%\bin
- 以管理员的身份打开cmd窗口跳转路径到D:\soft\mysql-8.0.27-winx64\bin
在窗口输入:mysqld --initialize --user=mysql --console,这一步会根据我们的配置文件初始化我们的mysql服务。最后可以看到,系统给我们分配了一个默认密码,记住这个密码,非常重要,后续会用到
输入mysqld -install进行服务的添加。
(如果这一步报:Install/Remove of the Service Denied,就表示你没有用管理员身份打开cmd,C:\Windows\System32\cmd.exe用管理员身份启动即可解决)
mysql服务。最后可以看到,系统给我们分配了一个默认密码,记住这个密码,非常重要,后续会用到。
输入mysqld -install进行服务的添加。
(如果这一步报:Install/Remove of the Service Denied,就表示你没有用管理员身份打开cmd,C:\Windows\System32\cmd.exe用管理员身份启动即可解决)
输入net start mysql启动服务。
输入mysql -u root -p进行登录数据库,这时提示需要密码,然后就是用你上面的默认密码登录。
修改密码语句:ALTER USER root@localhost IDENTIFIED BY '你的密码'; 。
输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
然后输入FLUSH PRIVILEGES;
这两句是为了让你navicat连的时候,不报1251错误的。 - windows 配置mysql允许远程登陆。
1.----连接Mysql (连接方式:mysql -u 你设置的用户名 -p你设置的密码 )
2.----查看数据库:show databases;我们会看到有一个叫做"mysql"的数据库,这里我们输入: use mysql 进入'mysql'数据库中
3.----执行 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
若出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解决方案:
执行一次:mysql> flush privileges;
然后再执行:GRANT ALL Privileges....语句。
重启一下mysql服务
注意:如果是云主机,远程不能连接,那么可能是,防火墙规则没有放行3306端口。我们要添加允许3306端口放行数据。
4.----刷新, FLUSH PRIVILEGES;
centos 7安装mysql 5.7
下载需要的tar文件
你可以选择在官网下载你需要的包,或者使用我提供的网盘连接进行下载。笔者使用的版本在之前已经介绍,为5.7.38。如果你使用其他的版本可能会出现一些问题。比如5.7.22,说实话我失败了。
卸载mysql
嗯哼?嗯哼?嗯哼? 对,你的电脑可能确实安装了关于mysql,建议检查一遍,如果安装必须删除。不然报错!报错!错!!!!!!
先判断是否安装rpm快速包,如果存在就需要删除
rpm -qa | grep mysql
# 删除指令
rpm -e --nodeps <列出的数据> [列出的数据...]
往往这么删除是不够了,还需要查询系统里面关于mysql的文件如果你通过以上指令出现的结果多了,请通过rm -ef <文件名>删除多出的文件夹,如果你/usr/lib64/mysql文件不仅有plugin也请直接删除。
[root@musiro ~]# find / -name mysql
> /usr/lib64/mysql
> /etc/selinux/targeted/active/modules/100/mysql
[root@musiro ~]# ls /usr/lib64/mysql
> plugin
安装几个需要的依赖
gzip:用于第一步解压
perl libaio:mysql-server安装需要的依赖
yum install -y gzip perl libaio;
上传文件并解压文件
笔者将文件上传到/home/mysql/文件夹下,注意mysql的安装根文件的位置毛关系没有。所以放在你习惯的地方即可。解压文件
gzip mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar;
tar -zxvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar.gz
安装rpm文件
一定要注意顺序,顺序不对会报错。
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm mysql-community-libs-5.7.38-1.el7.x86_64.rpm mysql-community-client-5.7.38-1.el7.x86_64.rpm mysql-community-server-5.7.38-1.el7.x86_64.rpm
# 如果出问题你就一个一个安装
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm;
如果安装的8.x版本,安装顺序为:
common
client-plugins
libs
client
icu-data-files
server
启动mysql
直接启动,千万不要玩花里胡哨的,比如初始化,授权等等,如果报错了让你知道什么叫做问题黑洞。
systemctl start mysqld
连接数据库
[root@musiro ~]# grep "password" /var/log/mysqld.log
[root@musiro ~]# mysql -uroot -p
右键粘贴即可,看不到的,后续操作要重设密码,密码不能设置太简单了,我是Xiong1983.包括一个点。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xiong1983.';
修改简单密码
如果你只是学习的目的使用mysql,不想设置复杂的mysql。OK这一步能够满足你的需求。先查看一下密码设置的要求
SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF | 名字检测
| validate_password_dictionary_file | | 字典文件
| validate_password_length | 8 | 长度
| validate_password_mixed_case_count | 1 | 字母
| validate_password_number_count | 1 | 数字
| validate_password_policy | MEDIUM | 难度
| validate_password_special_char_count | 1 | 字符
+--------------------------------------+--------+
- LOW -> 只有长度限制
- MEDIUM -> 除了字典文件其他都限制
- STRONG -> 全部
直接修改,只是临时起作用,重启系统,还是会恢复的。
set global validate_password_length = 5;
set global validate_password_policy = 0;
必须要写入/etc/my.cnf配置文件例才能永久生效
vi /etc/my.cnf在[mysqld]下加如下两行代码
---------------------------------------------------------------------------------------------------
validate_password_policy=0
validate_password_length=5
这样我们就可以改自已设的定码了,十分爽
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xiong';
远程连接数据库
update user set host='%' where user='root';