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

    mysql安装   

    1. 下载mysql的repo源

    卸载自带的

    yum list installed | grep mariadb

    yum -y remove mariadb*

    对之前的mysql残留环境彻底清除。清除命令如下:

    #yum remove mysql* mariadb* -y           

    #rm /etc/my.cnf                          

    #rm -rf /var/lib/mysql                   

    #rm -rf /usr/share/mysql                 

    #rm -rf /usr/lib/mysql                   

    查询mysql服务                            

    #systemctl list-unit-files | grep mysql  

    #systemctl disable mysqld.service        

    #systemctl disable mysql.service         

    #rm -rf /var/run/mysql/                  

    #rm -rf /etc/mecabrc                         

    #rm -rf /usr/lib/systemd/system/mysqld.service

    #rm -rf /etc/systemd/system/mysqld.service   

    #rm -rf /etc/systemd/system/mysql.service    

    1.1 下载安装包

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    安装包

     rpm -ivh mysql-community-release-el7-5.noarch.rpm

    1.2或下载并安装MySQL官方的Yum Repository

    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    使用上面的命令直接安装Yum Repository

     yum -y install mysql57-community-release-el7-10.noarch.rpm

    安装完还有一个问题就是Yum Repository,以后每次 yum 操作都会自动更新,需要把这个卸载掉

    [root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

    2.安装mysql

     sudo yum install mysql-server

    或者yum -y install mysql-community-server

     

    1)首先启动MySQL

    [root@localhost ~]# systemctl start  mysqld.service

    2)查看MySQL运行状态,运行状态如图:

    [root@localhost ~]# systemctl status mysqld.service

    3)此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

    [root@localhost ~]# grep "password" /var/log/mysqld.log

     登录

     mysql -uroot -p

     出现错误(ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘(2)

     原因是mysql这个文件的权限问题,需要把这个文件的权限改为当前用户)

    sudo chown -R root:root/var/lib/mysql

    初始化mysql

    mysqld --initialize

    重启服务登录root

    service mysqld restart

    mysql -u root

    进入服务修改密码

    use mysql;

    update user set password=password('*******') where user='root';

    或mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

    flush privileges;(系统刷新生效)

    下面就介绍几个目录。  

    1、 数据库目录

    /var/lib/mysql/  

    2、配置文件

    /usr/share /mysql(mysql.server命令及配置文件)  

    3、相关命令  

    停止mysql

    service mysqld stop

    /etc/inint.d/mysqld stop

    开始mysql

    /usr/bin(mysqladmin mysqldump等命令)  

    4、启动脚本  

    /etc/rc.d/init.d/(启动脚本文件mysql的目录)

    编码修改: /etc 下修改my.cof文件,添加 character-set-server=utf8 ,init_connect='SET NAMES,utf8' 重启mysql ;

    netstat -anp ===等于===  ps -ef|grep mysql

    查看错误日志

    tail -n 20  /var/log/mysqld.log

    日志报错 mysqld_safe A mysqld process already exists

    启动停止mysqld的进程需要  ps aux |grep mysqld 这个语句来查

    开启mysql的远程访问

    执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.19.128,如要开启所有的,用%代替IP):

    grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;

    注:password--是你设置你的mysql远程登录密码。

    然后再输入下面两行命令

    mysql> flush privileges;

    杀掉mysqld进程

    本地链接虚拟机MySQL

    1, cmd下telnet ***.***.**.*** 3306 (如果无法执行,则开启windows的telnet服务)

    2,查看网络端口信息 netstat -ntpl ; 查看防火墙状态 iptables -vnL;

    3,清除防火墙中链中的规则 iptables -F;

    4,在iptables.service 添加和22一样的3306(模仿22端口开放3306);

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

    6,如果不允许链接 则停止mysql , 屏蔽权限 mysqld_safe --skip-grant-table ,重新登录查看,如果没好则

    UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

    delete from user where USER='';  最后  FLUSH PRIVILEGES; (一定要执行);

    数据库显示不全的问题

    关闭Mysql

    service mysqld stop

    用安全模式启动Mysql

    mysqld_safe --skip-grant-tables

    执行这条命令后,当前ssh命令行会停住,如下

    [root@localhost /]# mysqld_safe --skip-grant-tables

    190702 10:22:14 mysqld_safe Logging to '/var/log/mysqld.log'.

    190702 10:22:14 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

    再打开一个ssh连接,登录到mysql数据库

    use mysql

    修改mysql.user表

    use mysql;

    delete from `user`;

    INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `Event_priv`, `Trigger_priv`, `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`) VALUES

    ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''),

    ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''),  ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''), ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');

    quit;

    停止mysql

    service mysqld stop

    以正常模式重新启动

    service mysqld start

    cmd链接远程服务器的mysql

    mysql -h+ip -uroot -p

    连接不上可能出现的原因

    1)未开启用户名权限。这时应该在远程服务器,使用root登录(mysql -uroot -p),输入grant all privileges on *.* to'用户名'@'ip地址' identified by'密码',(分配新用户的权限),然后进行刷新权限flush privileges;  然后重新启动mysql服务

    (2)远程服务器防火墙阻挡远程连接数据库,关闭防火墙或者点开windows防火墙,允许程序或功能通过window防火墙中的MySQL进行勾选(可能可允许的程序中没有MySQL这个选项)。

    CentOS7安装MySQL报错Failed to start mysqld.service: Unit not found解决办法这个是mariadb如果是手动安装的。就不要管这个,看下面

    当输入命令

    1 ~]# systemctl start mysql.service

    要启动MySQL数据库是却是这样的提示

    1 ~]# Failed to start mysqld.service: Unit not found

    解决方法如下:

    首先需要安装mariadb-server

    1 ~]# yum install -y mariadb-server

    启动服务

    1 ~]# systemctl start mariadb.service

    添加到开机启动

    1 ~]# systemctl enable mariadb.service

     

    ----------添加手动安装的到开机启动-------------

    # cd /etc/init.d/

    #./mysql status

    #chmod 777 mysql

    #chkconfig --add /etc/init.d/mysql

    #service mysql status

    #chkconfig mysql on

    #chkconfig --list

     

     

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    SQL Server-基础-经典SQL语句
    《程序是给自己看的还是给别人看的》
    中文写程序,何陋之有?
    ASP.NET 使用Ajax
    验证码帮助类
    js函数的四种调用方式以及对应的this指向
    C#相等性比较(转)
    HashTable、HashSet和Dictionary的区别
    MD5加密方法
    VS2015 & ReSharper 快捷键设置
  • 原文地址:https://www.cnblogs.com/hanby/p/14151089.html
Copyright © 2011-2022 走看看