Linux 安装MySql 5.7.21 操作总结

  • 1.添加用户组              
  groupadd  mysql  
  • 2.创建一个不用登陆的用户            

useradd -s /sbin/nologin -g mysql mysql   
  • 3.创建文件夹       

mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
  • 4.上传tar包                   

rz

       注意:有些系统rz 无效。需执行命令  (安装上传,下载)

    yum -y install lrzsz


                   如果上传到其他地方需要复制

copy #cp /mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
  • 5.解压               

tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
  • 6 重命名 

    mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql5.7
  • 7目录权限设置

   chown -R mysql:mysql /usr/local/mysql/
  • 8 查看是否设置成功看到文件的所有者和组都变成了mysql     

   ll
  • 9修改my.cnf 文件(i进入编辑模式退出Esc+:+wq)(需要用有修改权限的用户)

     命令:

vi /etc/my.cnf
[mysqld]        
basedir=/usr/local/mysql/mysql5.7/     #软件安装位置
datadir=/usr/local/mysql/data          #软件数据存储位置
socket=/var/lib/mysql/mysql.sock       
#socket=/tmp/mysql.sock
#skip-grant-tables
user=mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

 

  • 10初始化数据

           进入mysql安装目录

 cd /usr/local/mysql/mysql5.7


                        执行:

  bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --secure-file-priv=/root/ --initialize


                这个时候最好记住一个 密码   用来第一次登陆mysql的密码       例如:TZ5N%rVjdF   

  •  11启动mysql

            现在安装位置的bin目录下启动程序 

            执行命令 service mysql start

           我安装了几次每次都会报错,如果你运气好的话可能不会遇到。


Starting MySQL.Logging to '/usr/local/mysql/data/iZ2ze8hspx8qsmxx7b1i9sZ.err'.
170728 09:47:55 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/iZ2ze8hspx8qsmxx7b1i9sZ.pid).

    第一:

    “var/lib/mysql”目录不存在,首要先创建:

   mkdir   /var/lib/mysql

    第二:

     Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都

具有访问权限。而异常日志中表示:

[ERROR] Can't start server : Bind on unix socket: Permission denied

     所以,MySQL服务不具备目录 /var/lib/mysql 的写入权限,无法生成mysql.sock文件,自然服务启动时无法找到该文件。

     给目录 /var/lib/mysql 付予写入权限或者最大权限—chmod 777  /var/lib/mysql

 这个问题就可以解决。

运气太背的估计还会遇到其他的问题比如

  使用mysql -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock问题。

  解决办法

1.大多数mysql都是rpm方式安装的。它会自动寻找/var/lib/mysql/mysql.sock这个文件。

检查mysql.sock的位置。 通过/etc/my.cnf中的socket的字段。 如果socket如下所示:

socket=/tmp/mysql.sock

2.为mysql.sock增加软连接(相当于windows中的快捷方式)。比如实际的mysql.sock在/tmp/下。 
则运行如下命令。


ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock    
说明:In [参数][源文件或目录][目标文件或目录]
  •    12. 登陆数据库
mysql -u root -p       

需要填写密码(这时估计有的人忘记了密码是什么了)

不过没关系也是有解决办法的

进入到my.cnf文件,添加免密登陆(注意需要添加到[mysqld]下面)

vi /etc/my.cnf
[mysqld]        
skip-grant-tables

 然后修改root密码。  将 root 密码修改为 'root

flush privileges;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); 

然后在此修改配置的文件取消免密登陆

到此大多数人认为Linux下的mysql 安装 基本完成。

这时候你就会用工具对数据进行连接你会发现连不上。

1.检查防火墙

#查看防火墙状态                
firewall-cmd --state
#停止firewall                  
systemctl stop firewalld.service
#禁止firewall开机启动       
systemctl disable firewalld.service 

2.建立远程用户

  原因:  
                  如果只有root@'localhost'这个用户意味着这个用户只能从本地进行连接,无法远程连接,

      如果只有root@'%';这个用户则意味着这个用户只能从远程连接,无法从本地连接。

      所以如果本地连接和远程连接都需要的话则需要创建者两个用户。

#远程用户建立
grant all privileges on *.* to 'root'@'%' identified by '123456';  
  •          13.设置开机启动

1、将服务文件拷贝到init.d下,并重命名为mysql

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

2、赋予可执行权限

chmod +x /etc/init.d/mysqld

3、添加服务

chkconfig --add mysqld

4、显示服务列表

chkconfig --list

如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

chkconfig --level 345 mysqld on

5、重启电脑

reboot

6、验证

 ps -ef|grep mysql    

如果看到有监听说明服务启动了

  • 14.解决 -bash: mysql: command not found
  • root@DB-02 ~]# mysql -u root
               -bash: mysql: command not found

    原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
    首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

    # ln -s /usr/local/mysql/bin/mysql /usr/bin

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值