大佬教程收集整理的这篇文章主要介绍了Linux之18——Linux下安装MySQL及远程连接MySQL,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
由于Linux安装MySQL会遇到各种依赖问题,本博文整理了下安装方放,避免遇到依赖问题
查看是否自带mariadbrpm -qa|grep mariadb然后卸载rpm -e packagename --nodeps下载完整rpm包:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar然后解压:tar -xvf https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar然后先yum安装一下net-tools库:yum -y install net-tools*rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm[root@jordy rpm]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpmwarning: mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies: libaio.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64看到报错了,是缺少libaio库:wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm然后安装该库: rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
然后yum 安装 net-tools* 库
groupadd mysql
useradd -g mysql mysql到了官方文档时间段了,看下图,图中英文翻译过来就是:在Unix和Unix系列系统中,有一点是很重要的,那就是确保数据库目录与文件的所有者为mysql登录账户,以便在你运行mysqld服务的时候,mysql服务可以对这些目录和文件进行读取与写入操作。如果你是以root身份运行mysqld服务,就需要确认一下,执行如下面显示的包含有--user选项的命令:sHell> bin/mysqld --initialize --user=mysqlsHell> bin/mysqld --initialize-insecure --user=mysql另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。所以我在前面提到过添加mysql用户和MySQl用户组,当然这步操作可做可不做。通过官方文档我们可以知道,如果我是root身份登录Linux系统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。初始化mysql:mysqld --initialize --user=mysql启动mysqlsystemctl start mysqld查看刚刚初始化生成的临时密码:vim /var/log/mysqld.log *rajC8ykZ:5y然后登录mysqlmysql -u root -p登录后> mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before execuTing this statement.要求重置密码:则重置设置下密码,比如111111>SET passworD = passworD('111111');>ALTER USER 'root'@'localhost' passworD EXPIRE NEVER;>flush privileges;但是报错:mysql> SET passworD = passworD('123456');ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'passworD('111111')' at line 1mysql>
那直接按提示alter吧:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'tangtang';
然后就开始使用吧;
create database study;
use study;
create table `t_users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `account` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录账号', `passwd` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录密码', `salt` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '注册时生成的salt', `nick` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户昵称', `truename` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '真实姓名', `headimg` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户头像地址', UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在客户端连接远程服务器是,若遇到的如下错误:2059 - Authentication plugin 'caching_sha2_password' cAnnot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
这是因为即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式,我用的mysql8.0,于是就遇到了这个问题。
解决办法:mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root账户密码' ; 意为使用旧的认证方式。
@H_14_50@mysql 新建用户并赋予远程访问权限
[root@demo /]# mysql -u root -p #登录服务器数据库
#1.创建一个新用户 testuser 密码为 testuserpass
#2.创建数据库testDB
create database testDB;
#3.执行命令为testuser用户添加使用testDB权限
#4.执行命令,为testuser用户添加远程访问权限
#5.刷新权限表
flush privileges;
回收权限
1、拉取官方的最新版本的镜像:
$ docker pull mysql:latest
2、运行容器
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_password=123456 mysql
参数说明:
通过 docker ps 命令查看是否安装成功:
@H_618_211@
由于Linux安装MySQL会遇到各种依赖问题,本博文整理了下安装方放,避免遇到依赖问题
查看是否自带mariadbrpm -qa|grep mariadb然后卸载rpm -e packagename --nodeps下载完整rpm包:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar然后解压:tar -xvf https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar然后先yum安装一下net-tools库:yum -y install net-tools*rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpmrpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm[root@jordy rpm]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpmwarning: mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies: libaio.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64看到报错了,是缺少libaio库:wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm然后安装该库: rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
然后yum 安装 net-tools* 库
groupadd mysql
useradd -g mysql mysql到了官方文档时间段了,看下图,图中英文翻译过来就是:在Unix和Unix系列系统中,有一点是很重要的,那就是确保数据库目录与文件的所有者为mysql登录账户,以便在你运行mysqld服务的时候,mysql服务可以对这些目录和文件进行读取与写入操作。如果你是以root身份运行mysqld服务,就需要确认一下,执行如下面显示的包含有--user选项的命令:sHell> bin/mysqld --initialize --user=mysqlsHell> bin/mysqld --initialize-insecure --user=mysql另外,当你是以mysql的账户登录并执行程序的情况下,你可以将--user选项从命令中去掉。所以我在前面提到过添加mysql用户和MySQl用户组,当然这步操作可做可不做。通过官方文档我们可以知道,如果我是root身份登录Linux系统,可以执行:mysqld --initialize --user=mysql或者mysqld --initialize-insecure --user=mysql。如果我是以mysql用户登录Linux系统,可以执行:mysqld --initialize或者mysqld --initialize-insecure。初始化mysql:mysqld --initialize --user=mysql启动mysqlsystemctl start mysqld查看刚刚初始化生成的临时密码:vim /var/log/mysqld.log *rajC8ykZ:5y然后登录mysqlmysql -u root -p登录后> mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before execuTing this statement.要求重置密码:则重置设置下密码,比如111111>SET passworD = passworD('111111');>ALTER USER 'root'@'localhost' passworD EXPIRE NEVER;>flush privileges;但是报错:mysql> SET passworD = passworD('123456');ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'passworD('111111')' at line 1mysql>
那直接按提示alter吧:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'tangtang';
然后就开始使用吧;
create database study;
use study;
create table `t_users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `account` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录账号', `passwd` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '登录密码', `salt` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '注册时生成的salt', `nick` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户昵称', `truename` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '真实姓名', `headimg` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户头像地址', UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
在客户端连接远程服务器是,若遇到的如下错误:2059 - Authentication plugin 'caching_sha2_password' cAnnot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
这是因为即从mysql5.7版本之后,默认采用了caching_sha2_password验证方式,我用的mysql8.0,于是就遇到了这个问题。
解决办法:mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root账户密码' ; 意为使用旧的认证方式。
@H_14_50@mysql 新建用户并赋予远程访问权限
[root@demo /]# mysql -u root -p #登录服务器数据库
#1.创建一个新用户 testuser 密码为 testuserpass
#2.创建数据库testDB
create database testDB;
#3.执行命令为testuser用户添加使用testDB权限
#4.执行命令,为testuser用户添加远程访问权限
#5.刷新权限表
flush privileges;
回收权限
1、拉取官方的最新版本的镜像:
$ docker pull mysql:latest
2、运行容器
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_password=123456 mysql
参数说明:
通过 docker ps 命令查看是否安装成功:
@H_618_211@
以上是大佬教程为你收集整理的Linux之18——Linux下安装MySQL及远程连接MySQL全部内容,希望文章能够帮你解决Linux之18——Linux下安装MySQL及远程连接MySQL所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。