1.win10下cmd安装mysql

1.下载地址:https://dev.mysql.com/downloads/mysql/  下载

Windows (x86, 64-bit), ZIP Archive大约187兆

2.将下载的zip包解压放到自己想放的目录。 我是放到了D 

3.设置Windows环境变量:右键点击桌面计算机”-属性-高级系统设置-环境变量-系统变量-Path,在打开的变量值框最后加上路径D:\mysql-8.0.20-winx64\bin,保存

4.mysql-8.0.20-winx64新建一个my.ini

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.20-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

文件编码为:ANSI

5.进入cmd(管理员身份)

进入 D盘的D:\mysql-8.0.20-winx64\bin

1.执行命令:

mysqld --initialize-insecure

报错解决方法:

  • 方法1

mysqld --initialize-insecure 初始化mysql 这里我的机器出现 msvcr140.dll 缺失 反正不能安装之类的话,去安装过mysql的电脑路径C:\Windows\System32复制这些开头的

  • 方法2(推荐)

如果win10  ltsc 报错,需要安装direcrx 增强版,工具→选项→扩展→开始扩展,安装c++库

 

 

2.命令:mysqld -install(如果已经安装想卸载可以sc delete mysql )

mysqld -install

3.命令:net start mysql        (停止net stop mysql)

net start mysql 

没有错误就是没有问题 ,那就试试链接一下mysql

当遇到MySQL启动报错“发生系统错误 193. *** 不是有效的Win32 应用程序”时,通常可以按照以下步骤来解决:

  1. 使用管理员权限打开命令提示符(CMD)。

  2. 运行 mysqld --install 命令来安装MySQL服务。如果出现 "Service successfully installed" 表示安装成功。如果不成功,可以多次尝试。

  3. 查找MySQL安装目录,通常是 C:\Program Files\MySQL\MySQL Server X.X,其中 X.X 表示MySQL的版本号。

  4. 在MySQL安装目录下搜索 mysqld 文件,如果找到一个空的文件(大小为0KB),将其删除。

  5. 再次运行 net start mysql 启动MySQL服务。

这些步骤通常可以解决这个问题。如果问题仍然存在,可能需要检查MySQL的配置文件(my.ini或my.cnf)以确保正确设置,并确保MySQL服务在Windows服务管理器中正确注册。如果需要更多帮助,可以提供更多详细信息以便进一步协助解决。

4.mysql -u root -p 密码默认为空

mysql -u root -p

这样就成功了

 

2.在Ubuntu 20.04上安装MySQL教程

先决条件

确保您以具有sudo特权的用户身份登录。

在Ubuntu上安装MySQL

在撰写本文时,Ubuntu存储库中可用的MySQL的最新版本是MySQL 8.0。要安装它,请运行以下命令:

sudo apt update
sudo apt install mysql-server

安装完成后,MySQL服务将自动启动。要验证MySQL服务器正在运行,请输入:

sudo systemctl status mysql

docker 容器运行

root@48a9920840eb:/# service mysql status
 * MySQL is stopped.
root@48a9920840eb:/# service mysql start
 * Starting MySQL database server mysqld                                                                                                      su: warning: cannot change directory to /nonexistent: No such file or directory
                                                                                                                                       [ OK ]

输出应显示该服务已启用并正在运行:

● mysql.service - MySQL Community Server
 Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
 Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
 Main PID: 8617 (mysqld)
 Status: "Server is operational"
 ...

保护MySQL(可以忽略此步,没必要)

MySQL安装随附一个名为的脚本mysql_secure_installation,可让您轻松提高数据库服务器的安全性。

调用不带参数的脚本:

sudo mysql_secure_installation

系统将要求您配置VALIDATE PASSWORD PLUGIN用来测试MySQL用户密码强度并提高安全性的密码:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

密码验证策略分为三个级别:低,中和强。按下y如果你想设置的验证密码插件或任何其他键移动到下一个步骤:

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

在下一个提示符下,将要求您设置MySQL root用户的密码:

Please set the password for root here.


New password: 

Re-enter new password: 

如果您设置了验证密码插件,该脚本将向您显示新密码的强度。键入y以确认密码:

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

接下来,将要求您删除匿名用户,限制root用户对本地计算机的访问,删除测试数据库并重新加载特权表。您应该回答y所有问题。

以root身份登录

要从命令行与MySQL服务器进行交互,请使用MySQL客户端实用程序,该实用程序是作为MySQL服务器软件包的依赖项安装的。

在MySQL 8.0上,auth_socket默认情况下,root用户通过插件进行身份验证。

auth_socket插件对localhost通过Unix套接字文件从进行连接的用户进行身份验证。这意味着您不能通过提供密码来以root用户身份进行身份验证。

要以root用户身份登录到MySQL服务器,请输入:

 

win10子系统最好先停用win10上的mysqlserver,否则linux端可能启动不成功,会报错

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

sudo /etc/init.d/mysql start

 

sudo mysql

将为您提供MySQL Shell,如下所示:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.19-0ubuntu5 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

如果要使用外部程序(例如phpMyAdmin)以root用户身份登录到MySQL服务器,则有两个选择。

第一个是将身份验证方法从更改auth_socketmysql_native_password。您可以通过运行以下命令来做到这一点:

 ②把密码验证策略改简单点,让它适用简单的密码,这个符合懒人的做法。

查看密码验证策略方法,运行如下命令:(前提是重置密码之前是不让看的)

 如改密码会提示 Your password does not satisfy the current policy requirements

SHOW VARIABLES LIKE 'validate_password.%';

 

官方文档提供的文档

validate_password.length 是密码的最小长度,默认是8

validate_password.policy 验证密码的复杂程度

validate_password.check_user_name 用户名检查,用户名和密码不能相同

密码长度修改为4: 

set global validate_password.length=4;

 

密码复杂度修改为0: 

set global validate_password.policy=0;

 

 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;

推荐的第二个选项是创建一个新的专用管理用户,该用户可以访问所有数据库:

GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';

2.1 macos 安装mysql

brew install mysql
brew services start mysql

后面登陆操作和乌班图一样

3.开启远程

如果没设置密码要设置密码:改数据库密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

2:查看user表,修改连接级别

use mysql;
select host,user from user;

+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+
4 rows
in set (0.00 sec)

可以看到,root用户的host值为localhost,这代表只能本地连接,将localhost修改为%

update user set host='%' where user='root';

3:可能你觉得到这一步就完事了,但是使用navicat连接测试时,会提示无法解析主机名相关的错误,这是mysql8的一些安全策略的问题,具体请左转google,解决办法如下

要等一会再输入:设置远程密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

如果不行报错

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'

再试一次,输入上面命令,可能等待延迟,成功后输入

FLUSH PRIVILEGES;

注意:如果远程连接失败,要关闭防火墙

 Can't connect to MySQL server on '192.168.31.79' (10060)

乌班图20.04 server解决办法

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address = 127.0.0.1,将绑定地址改成0.0.0.0

重启mysql

service mysql restart                                 

    服务器安全组也要开启端口

4:完毕

4. 乌班图18.04安装mysql8.0

默认的是5.7的,所以网上下载

一,从官网下载MySQL配置文件

下载MySQL配置文件,网址:https://dev.mysql.com/downloads/repo/apt/

打开后将下拉到网页底部点击 Download按钮 下载 deb文件,进入下载页面,选择No thanks, just start my download,如下图: 

二、Ubuntu系统安装MySQL8.0+版本数据库

1、将下载好后的MySQL配置文件拷贝到Ubuntu系统

2、进入下载文件目录,打开终端,执行命令:sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb

 

3、选择 MySQL-8.0 点击OK 继续安装,:

4、执行更新命令:

sudo apt update

5、安装MySQL 8.0,执行命令:sudo apt install mysql-server

注意:要最大化窗口,不然后面点确定点不了

输入 Y 同意继续安装: 

sudo apt install mysql-server

输入两次密码后,选择第一项

mysql -u root -p

密码刚才输入两次密码

如果ssh安装mysql需要设置密码

sudo mysql

 

5.创建一个用户

  

create user yys@'%' identified by '123456';
grant all privileges on *.* to yys@'%' with grant option;

*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)

对一个库有权限

grant all privileges on log.* to yys@'%' with grant option;

 

-刷新权限表

flush privileges;

 

6.centos 8 安装mysql8

安装Yum Repository

wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm

 

使用rpm来安装MySQL

rpm -ivh mysql80-community-release-el8-1.noarch.rpm

 

使用yum安装mysql服务

yum install mysql-server

 

检查是否已经设置为开机启动MySQL服务

systemctl list-unit-files|grep mysqld

mysqld.service disabled

mysqld@.service disabled

 #设置开机启动

systemctl enable mysqld.service

Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.

systemctl list-unit-files|grep mysqld

mysqld.service enabled

mysqld@.service disabled

 查看是否启动MySQL服务

ps -ef|grep mysql

root 4311 32702 0 21:07 pts/4 00:00:00 grep --color=auto mysql

#启动服务

systemctl start mysqld.service

输入mysql就可以了

mysql

7.cenos 7 安装mysql8

一、卸载MariaDB
在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL。

1.1 查看版本:

rpm -qa|grep mariadb

1.2 卸载

rpm -e --nodeps 文件名

1.3 检查是否卸载干净:

rpm -qa|grep mariadb


二、安装MySQL
2.1 下载资源包
2.1.1 官网下载
MySQL官网下载地址 :

https://dev.mysql.com/downloads/mysql/


2.1.2 wget下载

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz


2.2 解压

.tar.gz后缀:tar -zxvf 文件名
.tar.xz后缀:tar -Jxvf 文件名


2.3 重命名
将解压后的文件夹重命名(或者为文件夹创建软链接)

# 重命名

mv 原文件夹名 /home/mysql8


# 软链接

ln -s /home/mysql8/mysql8


2.4 添加PATH变量
添加PATH变量后,可在全局使用MySQL。

有两种添加方式:export命令临时生效、修改配置文件用久生效;
#临时环境变量,关闭shell后失效,通常用于测试环境

vim ~/.bashrc
export PATH=$PATH:/home/mysql8/bin
source ~/.bashrc


三、用户和用户组
3.1 创建用户组和用户
# 创建一个用户组:mysql

groupadd mysql

# 创建一个系统用户:mysql,指定用户组为mysql

useradd -r -g mysql mysql


创建用户组:groupadd
创建用户:useradd
-r:创建系统用户
-g:指定用户组
3.2 数据目录
1、创建目录

mkdir -p /home/mysql8/datas


2、赋予权限

# 更改属主和数组

chown -R mysql:mysql /home/mysql8/datas


# 更改模式

chmod -R 750 /home/mysql8/datas


四、初始化MySQL
4.1 配置参数

vim /home/mysql8/my.cnf


在/home/mysql8/下,创建my.cnf配置文件,用于初始化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
# 安装目录
basedir    = /home/mysql8
# 数据存放目录
datadir    = /home/mysql8/datas/mysql
log-bin    = /home/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir      =/home/mysql8/datas/mysql
innodb_log_group_home_dir =/home/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error =/home/mysql8/datas/mysql/mysql.log
pid-file  =/home/mysql8/datas/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


4.2 初始化

mysqld --defaults-file=/home/mysql8/my.cnf --basedir=/home/mysql8/ --datadir=/home/mysql8/datas/mysql --user=mysql --initialize-insecure


参数(重要)

defaults-file:指定配置文件(要放在–initialize 前面)
user: 指定用户
basedir:指定安装目录
datadir:指定初始化数据目录
intialize-insecure:初始化无密码
五、启动MySQL
查看 MySQL的 bin路径下,是否包含mysqld_safe,用于后台安全启动MySQL。
5.1 启动服务
# 完整命令

/home/mysql8/bin/mysqld_safe --defaults-file=/home/mysql8/my.cnf &


# 添加PATH变量后的命令(省略bin目录的路径)

mysqld_safe --defaults-file=/home/mysql/my.cnf &

查看是否启动

ps -ef|grep mysql


5.2 登录
# 无密码登录方式

/home/mysql8/bin/mysql -u root --skip-password


# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)

mysql -u root -p


password:随机密码
5.3 修改密码
同上
5.4 设置允许远程登录
登录到mysql里执行

同上