-
2019-06-19 18:52:42
官方网站给出了多种安装方式, 如源码安装,压缩包安装, 二进制安装(如
.deb
文件). 尽管可以通过包管理器 (如apt
,yum
) 来安装, 可能安装的并不是最新版的. 如果使用官方仓库源, 也不能保证兼容性.因此这里使用压缩包方式安装MySQL8, 它适用于大多数发行版. 这里本系统为Deepin.
-
环境预处理: 安装前, 先删除原有mysql, 和配置,数据等文件, 如
/etc/my.cnf
或/etc/mysql/
-
MySQL依赖: mysql依赖于
libaio
库, 安装前先检查下是否已安装, 一般情况都有#检查是否已安装, 看是否提示已安装 apt search libaio #安装 apt install libaio1 #为啥多了个1? 因为仓库中名字就是这个..
-
下载: 通过浏览器下载, 地址:Download MySQL Community Server; 或使用curl下载, 如下所示
curl -L https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz -O
-
解压: 解压后, 可以凭自己喜好存于某个位置
tar -xJvf Downloads/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
-
创建mysql用户: 官网建议, 以非root用户运行mysqld, 有助于安全性. 这里创建了
mysql
用户# 创建一个不能登录的系统用户mysql, 默认也创建了组 useradd -r -s /bin/false mysql
-
初始化mysqld : 在这个过程中会建立root用户, 生成权限表等, 并存入数据目录中, 如果不存在会自动生成, 经测试为
data
目录, 而不是官方说的mysql-files
(这是一个坑)! 初始化有以下两种方式:mysqld就是mysql服务端程序, 这里就是初始化该程序.
下面我们会通过
--user
指定mysqld以mysql
身份运行, 由于切换身份需要root权限, 所以还要加上sudo
该数据目录是mysqld存放数据库等文件的地方, 此时该文件夹的拥有者为mysql, 也就是说mysqld以mysql身份运行时只能写该目录内的数据, 大大保证了安全性
-
--initialize
: 生成root密码, 打印在控制台sudo bin/mysqld --initialize --user=mysql
-
-initialize-insecure
: root账户无密码bin/mysqld --initialize-insecure --user=mysql
-
-
运行mysqld : 同样的, 以
mysql
身份运行, 这里的mysqld_safe一个启动mysqld方便的工具.sudo bin/mysqld_safe --user=mysql &
-
修改root密码:
mysql
是一个命令行客户端, 在bin目录下, 最好设置环境变量, 这里略.#root有密码的登录方式 mysql -u root -p #root无密码的登录方式 mysql -u root --skip-password #进入后修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
修改完后请关闭msyqld, 怎么关? 思路是使用
ps
的到进程号,kill
杀死它 -
增加安全性(可选) : mysql提供了
mysql_secure_installation
脚本来配置msyqld安全方面的配置, 功能如-
设置root账户密码
-
阻止外部访问root账户
-
删除匿名用户
-
等等
使用后最直观感受是, 用户密码不能是简单的123456了, 必须复杂… 开发环境下不建议使用.
#直接运行即可 mysql_secure_installation
-
-
自启配置: 我们要自启的是mysqld, 但是我不熟悉它的配置, 但是它提供了一个
mysql.server
, 能够方便的开启和关闭mysqld. 该脚本被写死了, 它规定mysql必须存在于/usr/local/
下, 目录名mysql
, 这里我使用符号连接来解决:ln -s $PWD/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
deepin使用systemd来管理启动程序的, 它兼容Sys V, 因此也可使用Sys V的方式来让mysql加入自启, 如:
cp support-files/mysql.server /etc/init.d/mysql.server
但新时代就用新方法, 这里通过Systemd的方式加入自启, 在
/usr/lib/systemd/system/
目录下创建配置文件mysqld.service
[Unit] Description=MySQL Server After=network.target local-fs.target remote-fs.target [Service] Type=forking PIDFile=/usr/local/mysql/data/sidian-PC.pid ExecStart=/usr/local/mysql/support-files/mysql.server start ExecStop=/usr/local/mysql/support-files/mysql.server stop ExecReload=/usr/local/mysql/support-files/mysql.server restart User=mysql [Install] WantedBy=multi-user.target
要注意点是, PIDFile的名字一般为你电脑的域名, 如我的
sidian-PC
, 通过hostname
命令获取.User
选项规定mysql以mysql身份运行.接下来启动它
sudo systemctl enable mysqld.service # 加入自启 sudo systemctl start mysqld.service # 现在启动mysqld
大功告成!
参考
- Installing and Upgrading MySQL : 简述安装的大致步骤
- Postinstallation Setup and Testing : 初始化设置
更多相关内容 -
-
Linux (centos8)安装 MySQL 8 数据库(图文详细教程)
2021-04-23 20:26:06我买了阿里云centos服务器,安装mysql8.0,做一笔记,以供大家使用。 本教程手把手教你如何在 Linux 安装 MySQL 数据库,以 CentOS 8为例。 1. 下载并安装 MySQL 官方的 Yum Repository wget ...我的公众号
今天2021年4月23日。我买了阿里云centos服务器,安装mysql8.0,做一笔记,以供大家使用。
本教程手把手教你如何在 Linux 安装 MySQL 数据库,以 CentOS 8为例。
1. 下载并安装 MySQL 官方的 Yum Repository
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
2、然后进行repo的安装:
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件 mysql-community.repo mysql-community-source.repo
之后就开始安装MySQL服务器。
yum install mysql-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
Linux 安装 MySQL 8 数据库1.png 2. MySQL数据库设置
2.1. 设置不区分大小写
vim /etc/my.cnf
在[mysqld]下,添加以下内容
#让MYSQL大小写敏感(1-不敏感,0-敏感)
lower_case_table_names=12.2. 启动MySQL
systemctl start mysqld.service
2.3. 查看MySQL运行状态
systemctl status mysqld.service
Linux 安装 MySQL 8 数据库2.png 2.4. 设置密码
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
Linux 安装 MySQL 8 数据库3.png 进入数据库:
mysql -uroot -p
输入刚刚上面的初始密码
Linux 安装 MySQL 8 数据库4.png 此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
new password为你设置的root密码 这里有个问题,新密码设置的时候如果设置的过于简单会报错:
尽量把密码设置复杂一些
Linux 安装 MySQL 8 数据库7.png 2.5. 设置远程访问
此时不能远程访问,如Navicat访问不了
居中
2.5.1 开放端口
(1)开放3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
(2)如果提示FirewallD is not running,如下图所示
Linux 安装 MySQL 8 数据库9.png (3)通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
Linux 安装 MySQL 8 数据库10.png (4)通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
Linux 安装 MySQL 8 数据库11.png (5)再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
Linux 安装 MySQL 8 数据库12.png (6)如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
Linux 安装 MySQL 8 数据库13.png (7)再次执行firewall-cmd --permanent --zone=public --add-port=3306/tcp ,提示success,表示设置成功,这样就可以继续后面的设置了。
Linux 安装 MySQL 8 数据库14.png (8)刷新
firewall-cmd --reload
Linux 安装 MySQL 8 数据库15.png 2.5.2. root远程访问
当防火墙开启后,Navicat访问出现如下图:
Linux 安装 MySQL 8 数据库16.png (1)设置认证方式。 如果你没有设置认证方式,默认的密码加密方式是:caching_sha2_password,而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就会报错:
client does not support authentication protocol requested by server; consider upgrading MySQL client
这里的错误信息就是不支持身份认证方式,没关系,编辑/etc/my.cnf(编辑命令:vim /etc/my.cnf)文件里面在[mysqld]下面加上这句话即可:
default_authentication_plugin=mysql_native_password
Linux 安装 MySQL 8 数据库17.png (2)登陆到mysql命令行:然后输入密码
mysql -u root -p
Linux 安装 MySQL 8 数据库18.png (3)进入之后选择mysql库,用户信息都存在这个库的user表中
use mysql;
select host, user, authentication_string, plugin from user;居中
可以看到,用户对应的主机是localhost,而不是%,所以不能连接。 (4)授权root用户可以远程登陆
update user set host='%' where user = 'root';
flush privileges;Linux 安装 MySQL 8 数据库20.png (5)刷新权限
flush privileges;
Linux 安装 MySQL 8 数据库21.png 2.6阿里云设置安全组需要开放3306端口
安全组---配置规则---快速添加即可
image-20210423200433985 此时,数据库就已经安装配置好了。 如此详细的图文教程,你学会了吗?赶紧收藏并试试吧!
2.7 2059错误的解决方案
MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。
执行
show variables like 'default_authentication_plugin';
select host,user,plugin from mysql.user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mima';
flush privileges;image-20210423200747492 image-20210423200806117 -
Linux 安装mysql8详细教程
2020-03-19 22:24:33最近要使用窗口函数,但是要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤 本文以CentOS 7 为例,详细教你如何在Linux下安装MySQL-8.0.19 安装的mysql 版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar....最近要使用窗口函数,但是要用到mysql8版本,所以在这记录一下Linux下安装MySQL8步骤
本文以CentOS 7 为例,详细教你如何在Linux下安装MySQL-8.0.19
安装的mysql 版本是:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
使用root权限操作
第一步:下载
两种方式1、
进入官网 https://dev.mysql.com/downloads/mysql/
上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。我们选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。
下载之后,通过ssh工具sftp/ftp方式上传到你服务器centos7指定的目录即可/usr/local/
2、
在你要放置安装包的目录下执行命令:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
第二步:解压并移动
首先说一下,移动不是必须的,但是我后面的配置里有指定文件目录,并且在Mac上安装mysql 默认也会放到 /usr/local ,所有最好按我的来。xz格式拓展知识: tar -Jxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
1. 解压 xz 格式文件 方法一: 需要用到两步命令: 首先利用 xz-utils 的 xz 命令将 linux-3.12.tar.xz 解压为 linux-3.12.tar, 其次用 tar 命令将 linux-3.12.tar 完全解压。 xz -d linux-3.12.tar.xz tar -xf linux-3.12.tar 方法二(推荐) tar -Jxf linux-3.12.tar.xz 2. 创建 xz 格式文件 方法一: 也是用到两步命令: 首先利用 tar 命令将 linux-3.12 文件夹打包成 linux-3.12.tar 其次用 xz-utils 的 xz 命令将 linux-3.12.tar 压缩成 linux-3.12.tar.xz。 tar -cf linux-3.12.tar linux-3.12/ xz -z linux-3.12.tar 方法二(推荐) tar -Jcf linux-3.12.tar.xz linux-3.12/
解压(如果是.xz格式可以使用 tar -Jxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz)
tar -zxvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.gz
移动(若上传的地方不是/uar/local/路径可以用mv命令移动)
mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/
1 重命名(改名和软连接,二选一)
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql8
或者使用
2 想弄软连接命令 :ln -s mysql-8.0.19-linux-glibc2.12-x86_64 mysql8
第三步:创建 用户,并给数据目录赋予权限
创建mysql组和用户groupadd mysql useradd -r -g mysql mysql
创建mysql数据目录 / 回到根目录
cd / && mkdir -p /data/mysql8_data/
赋予权限
chown mysql:mysql -R /data/mysql8_data chmod 750 /data/mysql8_data/ -R
为了避免在使用MySQL时总是必须键入客户端程序的路径名,可以将
/usr/local/mysql/bin
目录添加到PATH
变量中:export PATH=$PATH:/usr/local/mysql8/bin
第四步:my.cnf配置参数创建用于初始化mysql数据库时my.cnf配置文件
默认读取配置文件的顺序:
Default options are read from the following files in the given order:
1. /etc/my.cnf 2./etc/mysql/my.cnf 3./usr/local/mysql/etc/my.cnf 4.~/.my.cnfvim /etc/my.cnf然后 按 i 进入编辑模式,把下面内容复制进去
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 server-id = 3306 user = mysql socket = /tmp/mysql.sock # 设置mysql的安装目录 basedir = /usr/local/mysql8 # 设置mysql数据库的数据的存放目录 datadir = /data/mysql8_data/mysql log-bin = /data/mysql8_data/mysql/mysql-bin innodb_data_home_dir =/data/mysql8_data/mysql innodb_log_group_home_dir =/data/mysql8_data/mysql #设置mysql数据库的日志及进程数据的存放目录 log-error =/data/mysql8_data/mysql/mysql.log pid-file =/data/mysql8_data/mysql/mysql.pid # 服务端使用的字符集默认为8比特编码 character-set-server=utf8mb4 lower_case_table_names=1 autocommit =1 ##################以上要修改的######################## skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 1024 sort_buffer_size = 4M net_buffer_length = 8K read_buffer_size = 4M read_rnd_buffer_size = 512K myisam_sort_buffer_size = 64M thread_cache_size = 128 #query_cache_size = 128M tmp_table_size = 128M explicit_defaults_for_timestamp = true max_connections = 500 max_connect_errors = 100 open_files_limit = 65535 binlog_format=mixed binlog_expire_logs_seconds =864000 # 创建新表时将使用的默认存储引擎 default_storage_engine = InnoDB innodb_data_file_path = ibdata1:10M:autoextend innodb_buffer_pool_size = 1024M innodb_log_file_size = 256M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 transaction-isolation=READ-COMMITTED [mysqldump] quick max_allowed_packet = 16M [myisamchk] key_buffer_size = 256M sort_buffer_size = 4M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 :wq!
第五步:初始化mysql
cd /usr/local/mysql8/bin #一行 ./mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize
参数说明
--defaults-file=/usr/local/etc/my.cnf 指定配置文件(一定要放在最前面,至少 --initialize 前面)
--user=mysql 指定用户(很关键)
--basedir=/usr/local/mysql/ 指定安装目录
--datadir=/usr/local/mysql/data/ 指定初始化数据目录1.1 --initialize 初始化生成临时密码 临时密码登录 mysql -u root -p 输入服务器在初始化序列期间生成的随机临时密码: 1.2 --initialize-insecure 初始化时无密码 无密码登录 mysql -u root --skip-password 2. ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码'; flush privileges; #刷新权限 #首次改密推荐使用本地密码插件with mysql_native_password 3.创建访问用户及主机ip 如果你配置时使用了skip_name_resolve,要创建一下127.0.0.1用户及主机ip CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '你的新密码'; 创建远程访问用户任意ip CREATE USER 'root'@'%' IDENTIFIED BY '你的新密码';
查看mysql.log初始密码,复制出来
cat /data/mysql8_data/mysql/mysql.log
第六步:启动mysql,并更改root 密码
启动安全后台启动:(如果您的安装包含mysqld_safe,则像这样启动MySQL服务器)
bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf & ./mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
如果您的安装包含systemd支持,请按以下方式启动服务器:
1. systemctl {start|stop|restart|status} mysqld 对于systemctl或 service命令,如果MySQL服务名称不是mysqld,请使用适当的名称。例如, 使用mysql而不是 mysqld在基于Debian的系统和SLES系统上使用。 修改配置文件时: systemctl daemon-reload systemctl restart mysqld 2. 使用与System V系统兼容的service命令(具有相反的参数): service mysqld {start|stop|restart|status}
查看是否启动
ps -ef|grep mysql #查看mysql 进程 netstat -ano |grep "3306" #查看3306端口
更改密码
提示输入密码,把刚才临时的密码粘过来。cd /usr/local/mysql8/bin ./mysql -u root -p password:输入临时密码 2.无密码时登录 ./mysql -u root --skip-password
然后执行修改密码与root用户,主机host ip,并刷新权限
1 修改新密码123456: ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码'; flush privileges; #刷新权限 #首次改密推荐使用本地密码插件with mysql_native_password use mysql; select user,host,plugin,authentication_string from user; CREATE user 'root'@'%'; #创建用户任意远程访问 alter user 'root'@'%' identified with mysql_native_password by '123456'; #修改密码 grant all privileges on *.* to "root"@"%"; #给用户授权 flush privileges; #刷新权限 更改具体用户远程访问 CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456'; 创建'root'@'127.0.0.1'用户 flush privileges; #===> 记住刷新权限 select user,host,plugin,authentication_string from user; ===============57以后=================== update user set authentication_string=password("test") where user='root'; update mysql.user set host='你要指定的主机ip' where user='root'; ============以下5.7以前====================== 2 或者 SET PASSWORD = PASSWORD('123456'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; flush privileges; select user,host,plugin,authentication_string from user; #退出mysql> quit;或者exit; #关闭mysql shutdown; 修改MySQL用户密码 mysqladmin -u用户名 -p旧密码 password 新密码 3 或进入mysql命令行 SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码'); flush privileges;
添加帐户,分配特权和删除帐户
use mysql; #创建新用户及密码 CREATE USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '新密码'; FLUSH PRIVILEGES; CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password BY '123456'; FLUSH PRIVILEGES; CREATE USER 'mysql'@'%' IDENTIFIED with mysql_native_password BY '123456'; CREATE USER 'test'@'%' IDENTIFIED with mysql_native_password BY '123456'; #给用户授权 GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION; GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION; GRANT ALL ON *.* TO 'mysql'@'%' WITH GRANT OPTION; GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; select user,host,plugin,authentication_string from user; #撤消test数据库级特权 REVOKE CREATE,DROP ON test.* FROM 'test'@'%'; FLUSH PRIVILEGES; #删除帐户 DROP USER 'test'@'%'; FLUSH PRIVILEGES;
创建远程访问新用户并授权:
use mysql; #mysql8==>不允许<==授权并创建用户了,要分开使用 grant all privileges on *.* to '新用户名'@'%' identified by '密码' with grant option; grant all privileges on *.* to '新用户名'@'指定ip' identified by '密码' with grant option; 例如:以前使用 grant all privileges on *.* to 'root'@'%' identified by "123456" with grant option; mysql8分开操作为: CREATE ROLE 'root'@'%'; #创建角色CREATE USER 'root'@'%' IDENTIFIED BY '123456'; ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456'; #修改密码 grant all privileges on *.* to "root"@"%"; #给角色授权 flush privileges; #刷新权限 #另外修改主机 update mysql.user set host='具体要指定的主机ip' where user='root'; RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; #重命名 flush privileges; #刷新权限 select user,host,authentication_string from user;
注意:
1.确保用户名和密码正确
2.确保开放3306端口 并开启防火墙service iptables start
到这里就结束了,如果想退出mysql>quit或者exit ,关闭mysql 执行 service mysqld stop
创建开机自启动mysql服务
#确保my.cnf在路径/etc/my.cnf cd /usr/local/mysql8/ cp support-files/mysql.server /etc/rc.d/init.d/mysqld #错误 unit not found chmod +x /etc/init.d/mysql chkconfig --add mysqld chkconfig --level 345 mysqld on cd /usr/local/mysql8/ cp support-files/mysql.server /etc/rc.d/init.d/mysqld 启动:service mysqld start 停止:service mysqld stop 重启:service mysqld restart 重载配置:service mysqld reload
注意事项:
如果以上步骤有权限问题,可执行以下命令,还有把开启自起打开
出现unit not found 可以检查/etc/init.d/mysql是否存在,若否,
find / -name mysql.server
cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
还有在安装前如果你的系统有Mariadb,就要卸载第一条命令用来查看,如果有就用下面的命令卸载
rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 #查询出的版本
窗口函数:
https://dev.mysql.com/doc/refman/8.0/en/window-functions.html
mysql8部分删除内容:
-
与帐户管理相关的以下功能已删除:
-
使用
GRANT
创建用户。而是使用CREATE USER
。遵循这种做法会使NO_AUTO_CREATE_USER
SQL模式对GRANT
语句不重要,因此也将其删除,并且当sql_mode
选项文件中选项的该值的存在阻止mysqld启动时,现在会将错误写入服务器日志。 -
使用
GRANT
修改不是权限指派其他帐户属性。这包括身份验证,SSL和资源限制属性。而是在创建帐户时使用CREATE USER
或在之后使用修改这些 属性ALTER USER
。 -
IDENTIFIED BY PASSWORD '
auth_string
'CREATE USER
和的 语法GRANT
。而是使用 for 和 ,其中 值的格式与命名插件兼容。IDENTIFIED WITH
auth_plugin
AS 'auth_string
'CREATE USER
ALTER USER
'
auth_string
'此外,由于
IDENTIFIED BY PASSWORD
删除了语法,因此log_builtin_as_identified_by_password
系统变量是多余的,并且已删除。 -
该
PASSWORD()
功能。此外,PASSWORD()
删除意味着 语法不再可用。SET PASSWORD ... = PASSWORD('
auth_string
') -
该
old_passwords
系统变量。
-
-
查询缓存已删除。删除包括以下项目:
-
该
FLUSH QUERY CACHE
和RESET QUERY CACHE
语句。 -
这些系统变量:
query_cache_limit
,query_cache_min_res_unit
,query_cache_size
,query_cache_type
,query_cache_wlock_invalidate
。 -
这些状态变量:
Qcache_free_blocks
,Qcache_free_memory
,Qcache_hits
,Qcache_inserts
,Qcache_lowmem_prunes
,Qcache_not_cached
,Qcache_queries_in_cache
,Qcache_total_blocks
。 -
这些线程状态:
checking privileges on cached query
,checking query cache for query
,invalidating query cache entries
,sending cached result to client
,storing result in query cache
,Waiting for query cache lock
。 -
该
SQL_CACHE
SELECT
修改。
这些不赞成使用的查询缓存项仍然不赞成使用,但没有效果,将在以后的MySQL版本中删除:
-
SQL_NO_CACHE
SELECT
修饰符。 -
该
ndb_cache_check_time
系统变量。
该
have_query_cache
系统变量保持过时,总有一个价值NO
,并会在将来的MySQL版本中删除。 -
-
数据字典提供有关数据库对象的信息,因此服务器不再检查数据目录中的目录名称以查找数据库。因此,
--ignore-db-dir
选项和ignore_db_dirs
系统变量是多余的并被删除。 -
DDL日志(也称为元数据日志)已被删除。从MySQL 8.0.3开始,此功能由数据字典
innodb_ddl_log
表处理 。请参阅 查看DDL日志。 -
该
tx_isolation
和tx_read_only
系统变量已被删除。使用transaction_isolation
和transaction_read_only
代替。 -
该
sync_frm
系统变量已被删除,因为.frm
文件已经过时。 -
该
secure_auth
系统变量和--secure-auth
客户端选项已被删除。C API函数的MYSQL_SECURE_AUTH
选项mysql_options()
已删除。 -
的
multi_range_count
系统变量被移除。 -
该
log_warnings
系统变量和--log-warnings
服务器选项已被删除。请改用log_error_verbosity
系统变量。 -
sql_log_bin
系统变量 的全局范围 已删除。sql_log_bin
仅具有会话作用域,@@GLOBAL.sql_log_bin
应调整依赖于访问的应用程序 。 -
该
metadata_locks_cache_size
和metadata_locks_hash_instances
系统变量被删除。 -
未使用
date_format
,datetime_format
,time_format
,和max_tmp_tables
系统变量被删除。 -
这些弃用兼容性SQL模式被移除:
DB2
,MAXDB
,MSSQL
,MYSQL323
,MYSQL40
,ORACLE
,POSTGRESQL
,NO_FIELD_OPTIONS
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
。它们不能再分配给sql_mode
系统变量或用作mysqldump--compatible
选项的允许值 。删除
MAXDB
意味着将或 的TIMESTAMP
数据类型 视为 ,而不再视为。CREATE TABLE
ALTER TABLE
TIMESTAMP
DATETIME
-
子句 的不推荐使用
ASC
或DESC
限定符将GROUP BY
被删除。先前依赖于GROUP BY
排序的查询所产生的结果可能与以前的MySQL版本不同。要产生给定的排序顺序,请提供一个ORDER BY
子句。 -
该语句的
EXTENDED
和PARTITIONS
关键字EXPLAIN
已删除。这些关键字是不必要的,因为它们的效果始终处于启用状态。 -
这些与加密有关的项目已删除:
-
该
ENCODE()
和DECODE()
功能。 -
该
ENCRYPT()
功能。 -
的
DES_ENCRYPT()
,和DES_DECRYPT()
功能的--des-key-file
选项,have_crypt
系统变量,则DES_KEY_FILE
该选项FLUSH
语句和HAVE_CRYPT
CMake的 选项。
代替删除的加密功能:对于
ENCRYPT()
,请考虑SHA2()
改为使用 单向哈希。对于其他,请考虑使用AES_ENCRYPT()
和AES_DECRYPT()
代替。 -
-
-
CentOS7 安装 mysql8
2018-04-22 18:56:23本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结:CentOS7 安装mysql8 步骤;window下的Navicat 连接MySql8;涉及到的Linux命令--------------------------------------------------------------...本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结:
- CentOS7 安装mysql8 步骤;
- window下的Navicat 连接MySql8;
- 涉及到的Linux命令
------------------------------------------------------------------------------------------------------------------
第一部分 CentOS7安装mysql
1.1 安装前清理工作;
1.1.1 清理原有的mysql数据库;
使用以下命令查找出安装的mysql软件包和依赖包:
rpm -pa | grep mysql
显示结果如下:
mysql80-community-release-el7-1.noarch mysql-community-server-8.0.11-1.el7.x86_64 mysql-community-common-8.0.11-1.el7.x86_64 mysql-community-libs-8.0.11-1.el7.x86_64 mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次删除上面的程序
yum remove mysql-xxx-xxx-
删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;
find / -name mysql
可能的显示结果如下:
/etc/logrotate.d/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/selinux/targeted/tmp/modules/100/mysql /var/lib/mysql /var/lib/mysql/mysql /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql
根据需求使用以下命令 依次 对配置文件进行删除
rm -rf /var/lib/mysql
1.1.2 删除MariaDB的文件,
由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
使用rpm 命令查找出要删除的mariadb文件;
rpm -pa | grep mariadb
可能的显示结果如下:
mariadb-libs-5.5.56-2.el7.x86_64
删除上面的程序
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
可能出现错误提示如下:
依赖检测失败: libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要 libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要 libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
使用强制删除:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
至此就将原来有的mysql 和mariadb数据库删除了;
1.2 安装mysql
1.2.1 下面mysql官网提供的mysql repo源
centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;
mysql官网下载链接:mysql repo下载地址 如下:
1.2.2 使用putty的pscp将文件上传到CentOS
使用putty将F:盘下刚下好的mysql repo文件上传到Centos/usr/local/mysql文件夹下;
D:\Putty>pscp F:\mysql80-community-release-el7-1.noarch.rpm root@192.168.145.136:/usr/local/mysql/
1.2.3 安装 yum repo文件并更新 yum 缓存;
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
执行结果:
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
更新 yum 命令
yum clean all yum makecache
1.2.4 使用 yum安装mysql
当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
第一步: 查看mysql yum仓库中mysql版本,使用如下命令
yum repolist all | grep mysql
可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;
第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态
或者可以编辑 mysql repo文件,yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community
cat /etc/yum.repos.d/mysql-community.repo
将相应版本下的enabled改成 1 即可;
1.2.5 安装mysql 命令如下:
yum install mysql-community-server
1.2.6 开启mysql 服务
systemctl start mysqld.service
1.2.7 获取初始密码登录mysql
mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -u root -p
修改初始密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
1.2.8 在防火墙中开启3306端口
CentOS7默认使用的是firewall作为防火墙,我这里改为习惯常用的iptables防火墙
第一步: 关闭firewall防火墙
systemctl stop firewalld.service systemctl disable firewalld.service systemctl mask firewalld.service
第二步: 安装iptables防火墙
yum install iptables-services -y
第三步: 启动iptable防火墙
systemctl enable iptables systemctl start iptables
第四步: 编辑防火墙增加端口 防火墙文件位置为: /etc/sysconfig/iptables
vim /etc/sysconfig/iptables
在倒数第三行上增加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
第五步: 重启防火墙
systemctl enable iptables.service systemctl start iptables.service
1.2.9 将mysql 服务加入开机启动项,并启动mysql进程
systemctl enable mysqld.service systemctl start mysqld.service
常用mysql服务命令:
登录mysql mysql -u username -p 退出mysql quit 启动mysql systemctl start mysqld.service 结束 systemctl stop mysqld.service 重启 systemctl restart mysqld.service 开机自启 systemctl enable mysqld.service 查看mysql版本 select version();
本节参考文档:
参考文献1: centos安装mysql
参考文献2: A Quick Guide to Using the MySQL Yum Repository
------------------------------------------------------------------------------------------------------------------
第二部分 Navicat 连接 Mysql8
2.1 开启mysql远程服务:
2.1.1 修改mysql数据库下的user表中host的值
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"登录mysql数据库 执行如下命令:
mysql -u root -p use mysql; update user set host='%' where user='root';
2.1.2 使用授权的方式
赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
如果想myuser用户使用mypassword密码从任何主机连接到mysql服务器的话。mysql>FLUSH PRIVILEGES
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
2.2 在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:
Authentication plugin 'caching_sha2_password' cannot be loaded:
mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;
我们可可以查看mysql 数据库中user表的 plugin字段;
可以使用命令将他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';
再用Navicat链接 就可以链接成功;
本节参考文献:
参考文献1: mysql开启远程的两种方式
参考文献2:初次安装mysql遇到的问题
------------------------------------------------------------------------------------------------------------------
第三部分:安装过程中涉及到的Linux命令学习;
3.1 rpm
3.2 putty 上传文件 pscp命令;
在window机上CD进入pttty安装目录:
cd :\program files (x86)\Putty
将本地文件拷贝到Linux上:pscp 文件 用户名@LinuxIP:目录
pscp hello.txt root@192.168.145.135:/tmp/userfile/
将本地文件夹 拷贝到Linux上:pscp -r 目录 用户名@LinuxIP:目录
pscp -r c:\file root@10.43.65.98:/root/testFolder
将Linux上的文件\root\test.txt拷贝到本地C盘src文件夹,如下:
pscp root@abc_pc:/root/test.txt C:\src
3.3 修改防火墙文件/etc/sysconfig/iptables
3.4 systemctl命令
-
linux安装mysql8 一步一步超详细教程
2021-08-09 14:51:021、到指定目录下下载安装包 ...3、解压mysql8, 通过xz命令解压出tar包(这里时间可能会久一点根据服务器性能决定请耐心等待) 然后通过tar命令解压出文件夹 xz -d mysql-8.0.20-linux-glibc2.12-x86_6... -
Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功)
2020-11-15 22:42:06Centos7环境下安装Mysql8详细教程(超详细,亲测百分百成功) 1、上传或者下载mysql安装包 下载 推荐使用清华的镜像,下载速度非常的快 wget ... -
CentOS7.6安装MySQL8(通过tar包安装的方式)
2019-02-19 16:03:56使用以下命令查找出安装的mysql软件包和依赖包: rpm -pa | grep mysql 显示结果如下: mysql80-community-release-el7-1.noarch mysql-community-server-8.0.11-1.el7.x86_64 mysql-community-... -
MySQL redhat7 安装mysql8
2018-06-01 16:52:31vmware 装个 Redhat7 然后再装个mysql、 系统版本:rhel-server-7.4-x86_64 软件版本: mysql-8.0.11-1.el7.x86_64 系统自己找、 mysql下载地址:... -
Linux下安装mysql8(并设置不区分数据库表大小写)
2020-06-04 15:44:201. 检查MYSQL是否已安装 yum list installed | grep mysql 如果有先卸载 # 格式 yum -y remove [包名] yum -y remove mysql-libs.x86_64 2. 下载MySQL官网的仓库文件 wget ... -
linux下安装mysql8
2022-01-09 21:07:121. 创建软件目录 mkdir /usr/local/soft 2. 下载mysql 没有wget:yum install wget ...3. 安装mysql 移动到mysql目录:cd /usr/local/soft/mysql-8.0 1. 解压mysql :tar -zxJf mysql-8.0.20-linux-gli -
安装MySQL8,安装时初始化数据库失败
2019-08-24 23:04:53解决办法:修改my.ini里的内容:error:注释掉datadir那一行;warring:把utf8改成utf8mb4 这里只说了我遇到的问题和解决办法,错误各种各样,希望我们都能不要着急慢慢来 -
linux下安装mysql8(基于yum安装和mysql安装包离线安装两种方式)
2019-08-26 23:31:14试验环境: ...linux下安装mysql这里有两种方式 1.基于rpm安装 2.完全手动安装 一、基于rpm方式安装 1.1 去mysql官网系在对应的rpm包 安装rpm: [root@localhost soft]# yum -y install mysql80-co... -
CentOS7.5 安装MySQL8 tar
2018-07-08 02:13:211、查看是否安装mariadb 执行命令: [root@mysql ~]# rpm -qa | grep mariadb 显示: mariadb-libs-5.5.56-2.el7.x86_64 2、卸载mariadb 执行命令: [root@mysql ~]# rpm -e --nodeps mariadb-libs-... -
linux yum安装mysql8
2019-10-10 09:47:04如果linux 里面安装了docker ,建议使用docker安装mysql,可以参考我的docker安装mysql 8 并配置远程连接 如果linux 系统里直接安装 ,建议使用yum进行安装(ubuntu可以先安装yum) 如果安装在windows里面,可以... -
【MySQL】安装配置:win10 自定义安装 mysql 8
2018-07-05 01:08:55二、MySQL安装 三、mysql常用登录和快捷进入cmd操作 一、MySQL官网下载 (一)MySQL下载地址:https://dev.mysql.com/downloads/file/?id=476233点击打开链接 (二)下载压缩包到需要安装的电脑磁盘,解压后... -
Docker下安装MySQL8与开启root远程访问
2019-05-21 15:59:241.docker search mysql #查询mysql版本 2.docker pull mysql:8.0.15 #拉取mysql 3.创建mysql容器 ...docker run -d -e TZ=“Asia/Shanghai” -p 3306:3306 --name mysql_8 -e MYSQL_ROOT_PAS... -
centos 7 安装 mysql8 以及遇到的问题的解决
2018-09-02 14:18:34centos 7 安装 mysql8 以及遇到的问题的解决 linux系统:centos7.4_64 mysql版本:mysql 8.x mysql 源的配置和下载 1、从官网(https://dev.mysql.com/downloads/repo/yum/)下载mysql源rpm安装包。(RPM是... -
MySQL8安装详细步骤
2022-01-11 10:39:43mysql8的安装: 下载地址: MySQL :: MySQL Downloads 安装时选择社区版 点击社区服务器 (1)社区版和企业版的区别: 1、商业版本组织管理和测试环节控制更严格,稳定性方面,比社区版更... -
MySQL 8 安装教程
2018-09-17 16:57:16MySQL 8发布了 ,据说相比MySQL 5速度提升了2倍!今天来搞一搞MySQL 8。 一、下载MySQL 8 1,首先当然是下载安装包了,下载地址:点击下载MySQL 8 这个页面相信大家都熟悉,我就不多说了。 2,将下载的压缩包... -
Windows10中同时安装MySQL5和MySQL8
2019-07-02 15:47:40前言:在实际环境中不会同时安装两个数据库,但是在自己学习中就会用到两个数据库,一个工作使用,一个了解前沿技术。...进入是下载MySQL8 点击previous获取以前MySQL版本,下载MySQL5 二、下载下... -
CentOS下安装Mysql 8.0步骤详解
2021-01-27 05:41:32本次安装Mysql的CentOS版本是7.71.下载Mysql首先去Mysql官网下载安装包,网址https://dev.mysql.com/downloads/mysql/推荐大家下载Linux通用版本的,便于管理安装位置,也方便一台服务器安装多个版本的mysql,下载后... -
CentOS8 安装MySql 8.0教程
2020-07-20 19:00:24Mysql官方下载 将下载好的文件上传至服务器 /usr/local/tools tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0.21 添加系统用户组和用户 groupadd ... -
MySQL 8.0.19安装教程(windows 64位)
2018-08-15 18:05:05话不多说直接开干 ...4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ... -
CentOS 8安装Mysql8并设置开机自启动
2019-11-29 13:17:470. 看起来mysql又提供yum安装了。 yum install mysql-server 后面的没时间可以不看了。 先要安装wget yum -y install wget 1.下载rpm安装文件 wget http://repo.mysql.com/mysql-community-release-el7.rpm ... -
windows下离线安装mysql8.0服务(支持多个安装,端口不同就可以)
2021-05-29 16:27:571.官网下载 mysql文件。官网下载链接: https://dev.mysql.com/downloads/mysql/ 选择mysql下载的系统版本。 此处可以下载MSI安装包,图简单的朋友可以下载,然后“下一步”安装即可。 此处下载ZIP压缩包版(这次... -
Mac安装mysql 8.0.21
2020-07-18 11:49:54今天把MySQL安装了一下,用的是Macpro 网上5.X的安装方法已经不合适了,在cdsn上找到的最新版本安装,全程操作下来流畅,傻瓜操作,记录一下 附上安装过程的备注,同时感谢网友的无私贡献 1、首先登陆mysql官网... -
CentOS8下通过yum安装mysql8.0.18
2019-12-18 13:05:50CentOS8下通过YUM安装mysql8.0.11 用过rpm安装和yum安装,还是觉得yum安装最方便,下面是我的安装过程 检测系统是否自带安装 MySQL: rpm -qa | grep mysql 卸载安装 rpm -e mysql // 普通删除 rpm -e --nodeps ... -
Linux服务器安装Mysql8.0数据库
2019-09-03 17:14:07之前写过一篇文章记录linux服务器安装mysql数据库,安装完之后发现mysql是5.0版本。自己本机的mysql是8.0版本,导出的.sql文件在mysql5.0上一直报错。所以再重装下mysql8.0版本。 采用的是下载.rpm文件的方式安装~ ... -
centos8安装mysql8.0.22教程(超详细)
2021-01-11 16:58:46最近因为公司需求需要升级mysql版本到服务器(服务器系统使用centos8) ,mysql版本8.0.22。在安装过程中也遇到了很多坑,现在和大家分享如下: 安装步骤如下: 1.1 首先用xshell远程连接到服务器 1.2 如果服务器之前...