zoukankan      html  css  js  c++  java
  • Linux安装mysql

    第一步:下载mysql

    cd /usr/local/src

    下载包:

    wget https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

    (或直接从window上传)

    解压:

    tar zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

    移动到/usr/local :

    mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local

    进到/usr/local/目录下: 

    cd /usr/local

    改名为mysql:

    mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql

    然后去到mysql/support-files目录下:

    cd mysql/support-files

    第二步:修改参数

    1、复制my.cnf 到 /etc/my.cnf (mysqld启动时自动读取)

    cp my-default.cnf /etc/my.cnf

    注意:如果你在安装时Linux虚拟机时同时安装了默认的mysql,此时操作以上步骤,终端将会提示你文件已存在是否覆盖,输入yes覆盖即可。

    2、配置数据库编码

    vi /etc/my.cnf

    在这份文件中可以添加以下配置信息(如果有修改即可)

    [mysql]
    default-character-set=utf8
    
    [mysqld]
    default-storage-engine=INNODB
    character_set_server=utf8

    3、复制mysql.server 到/etc/init.d/  目录下【目的想实现开机自动执行效果】

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql  

     (mysql是服务名)

    4、修改 /etc/init.d/mysql 参数

    vi /etc/init.d/mysql

    给与2个目录位置

    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data

    第三步:创建 mysql 用户 (可跳过)

    出于安全便利,创建一个操作数据库的专门用户

    1)、建立一个mysql的组

    groupadd mysql

    2)、建立mysql用户,并且把用户放到mysql组

    useradd -r -g mysql mysql

    3)、给mysql用户设置一个密码

    passwd mysql

    4)、给目录/usr/local/mysql 更改拥有者

    chown -R mysql:mysql /usr/local/mysql/

    附:永久性删除用户账号

    userdel peter
    groupdel peter
    usermod –G peter peter

    (强制删除该用户的主目录和主目录下的所有文件和子目录)

     

    第四步:初始化 mysql 的数据库

    首先去到mysql的bin目录

    cd /usr/local/mysql/bin

    1.初始化

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    生成出一个data目录,代表数据库已经初始化成功
    并且mysql的root用户生成一个临时密码:sBBe=g.a*3g+ (最好先记录这个临时密码)

    2.给数据库加密

    ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

    3.启动mysql(为了不让进程卡主,可在启动mysql的命令后加上&代表此进程在后台运行)

    ./mysqld_safe --user=mysql &

     或者

    /usr/local/mysql/support-files/mysql.server start

    问题:

     修复:

    mkdir /var/run/mariadb/
    chown -R mysql:mysql /var/run/mariadb/
    

     有时建了文件夹和文件后,还是会报错,可以尝试删掉etc/my.cnf文件

    4.检查

    ps -ef|grep mysql

     

    发现有以上进程便代表启动成功。

    第五步:进入客户端

    首先去到mysql的bin目录

    cd /usr/local/mysql/bin

    1.登录

    ./mysql -uroot -p

    回车后输入之前的临时密码

    错误1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    这个看应该是权限问题,增加权限配置,

     mkdir /var/log/mariadb/;
     touch /var/log/mariadb/mariadb.log;
     chown -R mysql:mysql /var/log/mariadb/

    错误2:mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

     var/lib/mysql目录不存在,首要先创建,其次Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都具有访问权限

    mkdir /var/lib/mysql
    chown -R mysql:mysql /var/lib/mysql/  或者  chmod 777  /var/lib/mysql

     这个问题查了一堆资料没鬼用,最后用下面这句解决了,启动时指定user和地址,原文地址:https://www.cnblogs.com/xuey/p/10460495.html

    在默认情况下,Mysql安装以后会在/tmp目录下生成一个mysql.sock文件,如该文件丢失则Mysql将不能够正常启动,解决方法:使用mysqld_safe 启动即可解决;

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    错误3:Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)

    分析/var/log/mariadb/mariadb.log日志, Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory),同样的处理方式

    mkdir /var/run/mariadb/
    chown -R mysql:mysql /var/run/mariadb/

    2.修改密码

    set password=password

    或者

    首先拿到操作系统的root权限,然后kill掉Mysql服务或者手动stop掉,这里我推荐使用手动stop;

    1 service mysql stop

    然后执行

    1 mysqld_safe --skip-grant-tables &

    &,表示在后台运行,不再后台运行的话,就再打开一个终端吧。

    接着登陆MySQL修改密码

    1 mysql
    2 mysql> use mysql;
    3 mysql> UPDATE user SET password=password("test123") WHERE user='root';   
    4 mysql> exit; 

    注意:如果Mysql的版本是5.7及以上的话update语句如下:

    1 mysql> update user set authentication_string=passworD("test") where user='root';

    参考:https://www.cnblogs.com/chuckjam/archive/2018/08/10/9456255.html

    第六步:设置远程访问

    1,在远程访问之前需先配置防火墙  systemctl stop firewalld.service(不推荐,可配置开通3306端口)

    2,授权

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密码' WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES;
    mysql>select host,user from user; 【多出1条远程登录用户记录】
    mysql>flush privileges;(刷新)

    或者

    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    mysql>Flush Privileges;

    错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

     安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个

    解决方式如下:

    MySQL版本5.7.6版本以前用户可以使用如下命令:

    mysql> SET PASSWORD = PASSWORD('Xiaoming250'); 

    MySQL版本5.7.6版本开始的用户可以使用如下命令:

    mysql> ALTER USER USER() IDENTIFIED BY 'Xiaoming250';

    如果不清楚自己是什么版本,可以将两条都尝试一下。

    参考:https://blog.csdn.net/muziljx/article/details/81541896

    此时使用远程机器进行访问

     

    解析:使用mysql -h主机ip -u用户名 -p密码即可进行远程访问

    第七步:设置开机自启动

    1、添加服务mysql

    chkconfig --add mysql 或者【mysqld -install】

    2、设置mysql服务为自动

    chkconfig mysql on

    3、重启查看进程

    init 6
    ps -ef|grep mysql

    第八步:配置环境变量

    为了方便操作,配置环境变量还是有必要的。

    vi /etc/profile
    //export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
    export PATH=$PATH:/bin:/usr/local/mysql/bin

    小结:到这一步基本的配置基本就完成了。

    安装包:mysql安装链接:http://pan.baidu.com/s/1pL7bFab 密码:5iz7

    参考:http://www.cnblogs.com/1016882435AIDA/p/6265759.html

    https://www.cnblogs.com/yanh0606/p/8556990.html

    https://www.jianshu.com/p/276d59cbc529

  • 相关阅读:
    luoguP3181 [HAOI2016]找相同字符
    luoguP4248 [AHOI2013]差异
    luoguP2852 [USACO06DEC]Milk Patterns
    后缀自动机
    luoguP3975 [TJOI2015]弦论
    luoguP2824 [HEOI2016/TJOI2016]排序(线段树分裂做法)
    组合数学学习笔记
    「题解」:[BZOJ2938]病毒 (AC自动机+dfs)
    Linux新人报到
    指针学习笔记
  • 原文地址:https://www.cnblogs.com/cxscode/p/7349716.html
Copyright © 2011-2022 走看看