mysql install

Centos7_X86-64

  1. mysql官网找到对应的版本。我选择的是linux-generic的64位版本。
    截屏2020-04-0114.24.31.png
截屏2020-04-0114.34.02.png
  1. 在服务器中使用wget xxx下载压缩包文件。其中的xxx指的就是上面步骤中拷贝的链接地址。
  2. 解压下载的文件:tar -vxf xxxxxxx.tar.xz -C path
    其中由于mysql8.x中已经不提供tar.gz文件了,只有tar.xz和tar,因此解压参数去掉z参数。path为指定的解压目录,也可以直接删掉-C path,表示在解压在当前目录下。
    注意,如果下载的是tar文件,这个文件里面是包括了三个压缩包文件的,一个是mysql-xxxx.tar.xz,一个是mysql-router-xxxx.tar.xz,一个是mysql-test-xxxx.tar.xz。我们需要用到的仅仅是mysql-xxxx.tar.xz这一份。
  3. 接下来配置环境变量,方便后面使用命令时不用再打那么多代码进入到bin目录下运行程序。
    cd到解压后的mysql文件目录中。cd mysql-8.0.19-linux-glibc2.12-x86_64/,使用pwd打印完整路径并复制该路径。
    使用vi工具打开环境变量文件sudo vi ~/.bash_profile,并将上面复制的路径填入:
MYSQL_PATH=xxxxxx #xxxxxx就是mysql压缩包文件的解压路径。
PATH=$PATH:$MYSQL_PATH/bin

export MYSQL_PATH

使用source ~/.bash_profile使得环境变量配置的变更生效。
使用cd $MYSQL_PATH查看是否配置成功。

5.创建mysql用户组sudo groupadd mysql,并添加mysql用户useradd -r -g mysql mysql。useradd中r参数表示创建一个系统用户,-g表示指定添加到的用户组,后面第一个mysql表示用户组名,第二mysql表示新添加的用户名。

6.对mysql的配置文件进行处理。sudo vim /etc/my.cnf,如果是通过解压tar包进行安装Mysql而非使用yum/apt-get/npm等进行安装,是不存在这个文件的,直接使用vim编辑保存即可。
内容如下:

[mysqld]
bind-address=0.0.0.0 #地址,填写服务器ip地址或直接配置0.0.0.0均可
port=3306 #端口,一般mysql默认3306
user=mysql #上面步骤中添加的那个用户名
basedir=/xxxx/mysql #解压后的文件夹路径
datadir=/data/mysql #数据存放的文件路径。
socket=/tmp/mysql.sock 
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4 #编码配置
symbolic-links=1 #配置符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,使用符号链接到对应的分区目录。
explicit_defaults_for_timestamp=true #对timestamp数据类型进行配置
  1. 创建数据存放文件夹。sudo mkdir xxxx,路径就是上面步骤中datadir的路径,例如上面的sudo mkdir -p /data/mysql

  2. 将创建的数据存储文件归属配置为之前创建的mysql用户:
    sudo chown mysql:mysql -R /data/mysql,第一个mysql表示用户组,第二mysql表示用户,R参数表示递归处理,即data、mysql即内部的全部文件都指定为mysql用户所有,后面的/data/mysql表示要配置归属用户的文件(路径)。

  3. 启动mysqld初始化程序
    例如:
    sudo $MYSQL_PATH/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
    --defaults-file表示的是配置文件的路径,我们在etc创建了配置文件my.cnf,这里就配置为/etc/my.cnf
    --basedir配置的是mysql解压后的文件路径,如示例代码中我们解压路径是/usr/local/mysql/。
    --datadir就是第7步中创建的数据存放文件夹的路径。
    --user中的指的是第5步中创建的用户
    注意basedir和datadir中一定要在路径后面补全“/”,例如/a/b/c/,如果路径写成了/a/b/c,很可能就会报错

  4. 查看自动生成的root用户密码
    cat /data/mysql/mysql.err,这里的文件路径对应于/etc/my.cnf中log-error配置的路径。
    一般会在最后一行看到“A temporary password is generated for root@localhost:xxxxx ”,这里就是生成的root用户密码。

  5. 将mysql服务提交到system-server中:
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql,以后我们就可以使用systemctl start mysqlservice mysql start进行mysql服务的启动了。(但是很奇怪的是我使用systemctl是提示无unit的,而且结束时也无法使用service mysql stop而只能使用mysql.server stop)

  6. 修改root登录密码
    mysql -uroot -p,输入log-error中提供的root密码登录mysql。

SET PASSWORD = PASSWORD('新密码'); #设置密码变量
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; #为root用户更改密码
FLUSH PRIVILEGES;     刷新权限                            
  1. 其他
    如果通过Navicat或其他工具无法连接到mysql,需继续进行下面的操作:

use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;                                    #刷新权限

Windows(以win7-x86-64为例)

  1. 去官方网站下载mysql软件,官网提供了一键安装及压缩包免安装版本。由于一键安装版本会默认帮你安装一个workbench客户端,软件安装包比较大,所以我们一般选择压缩版版本的。


    截屏2020-04-1220.45.22.png
  2. 下载好以后,进行解压。
  3. 个人习惯,解压后进行环境变量的配置,简单说就是将解压的文件目录和mysql/bin目录这两个目录添加到环境变量中。
  4. 安装及初始化。
    运行mysqld --install(如果没有进行第三步环境变量配置的话,需要先cd到mysql/bin目录下,再执行这条命令)
  5. 当安装成功后,会提示"Service successfully installed"。
    若安装失败,建议以失败原因作为关键词到谷歌进行搜索。一般多出现的情况是之前存在老版本mysql未卸载干净,或老版本的mysql服务没有停止。
  6. 使用mysqld --initialize --console进行初始化操作。此项如果执行成功,一般会在最后一行提示“a temporary password is generated for root@localhost:xxxxxx”,记录好这个密码,这是初始化时root用户的登录密码。
  7. 使用net start mysql启动mysql服务。
  8. 使用root账号登录mysql,修改root用户登录密码。
    登录口令为mysql -uroot -p,随后输入上面记录的临时登录密码进行登录。
    登录后,使用alter user ’root‘@’localhost‘ identified by ’xxxx‘
    在xxxx出填入自定义密码,再使用flush privileges刷新权限即可。使用exit退出后,测试能否用新密码登录root用户。
  9. 创建新用户
    有时我们需要创建一个自定义用户而不想使用root用户进行操作。
    可以通过insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"))进行操作。
    并使用grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"为新用户赋予权限,其中权限包括all(所有权限)、select、update、delete、drop等等,而数据库.*表示我们可以限制用户只能使用某个数据库的某一些数据表。
  10. 如果使用mysql8,可能会出现命令行操作mysql数据库是正常的,但是使用navicat等其他数据库软件时会出现错误提示连接失败。大部分情况是由于mysql8中修改了加密规则,因此我们只需要在命令行重新更改加密规则,就能在Navicat正常连接到数据库了。
mysql8安装时选择了强加密规则caching_sha2_password,与之前的mysql5.7的mysql_native_password规则不同,navicate驱动目前不支持新加密规则

手动修改加密规则改成与mysql5.7一样

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则  
  
  
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';  #更新一下用户的密码  
 
 
FLUSH PRIVILEGES; #刷新权限

配置文件

在执行安装之前,我们也可以根据个人需要修改配置文件:

[mysqld] 
# 设置mysql的安装目录,也就是我们解压的目录
basedir=C:/mysql-x.x.xx-winx64
# 设置mysql数据库的数据的存放目录
# datadir=C:/mysql-x.x.xx-winx64/data
# 设置默认使用的端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人试图攻击数据库
max_connect_errors=10
# 服务端使用的字符集
character-set-server=utf8mb4
# 数据库字符集对应一些排序等规则使用的字符集
collation-server=utf8mb4_general_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件作为认证加密方式
# MySQL8.0默认认证加密方式为caching_sha2_password
default_authentication_plugin=mysql_native_password
 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
 
[client]
default-character-set=utf8mb4
port=3306
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容