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

 

 

纵有白头俱老意,奈何缘浅路芊芊.
原文地址:https://www.cnblogs.com/hanby/p/14151089.html