美文网首页
mysql install

mysql install

作者: 异同 | 来源:发表于2020-04-12 21:17 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:mysql install

          本文链接:https://www.haomeiwen.com/subject/rqzouhtx.html