Linux 安装 mysql
mysql安装
- 下载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
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步