1. Centos安装mysql(通过yum)
基于Debian平台的Linux系统,可以直接使用apt命令安装mysql
sudo apt install -y mysql-server mysql-client
由于历史原因,如果在CentOS里运行 yum install mysql 不会安装mysql数据库,而是会安装MariaDB(关于MySql和MariaDB的关系,参考百度百科)。在CentOS里安装mysql要稍微复杂一些。
卸载amriadb
rpm -qa | grep mariadb
yum remove 包名
下载
- 从mysql官网上下载mysql仓库,会得到 mysql80-community-release-el7-3.noarch.rpm 文
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.r
- 运行
yum install mysql80-community-release-el7-3.noarch.rpm
安装mysql repository.
安装1
-
默认安装的mysql版本是8.0,而我们在开发中常用的是5.7版本,所以需要修改配置文件,默认安装5.7版本。使用
vim /etc/yum.repos.d/mysql-community.repo
命令修改 mysql-community.repo 文件。
将文件中,mysql80的enable值改为0,mysql57的enable值改为1.
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
或者直接下载相应版本的不需要再修改文件
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然后安装rpm文件(需要root用户):
rpm -ivh mysql-community-release-el7-5.noarch.rpm
运行yum install mysql-community-server
安装mysql数据库
开启数据库服务
- Ubuntu :
service mysql start|stop|restart|status
- Deepin :
systemctl start|stop|restart|status mysqld
- CentOS7 :
systemctl start|stop|restart|status mysqld
- CentOS6 :
service mysqld start|stop|restart|status
连接数据库
在其他版本的Linux里,root用户的默认密码是空,可以不使用密码直接登录。但是在CentOS7里,
mysql安装完成以后,会生成一个临时密码,我们需要通过命令查看到这个默认密码。
cat /var/log/mysqld.log |grep password
各个 Linux 系统连接数据库的语法都一样
语法:mysql -hloaclhost -uroot -p123456 -P3306
- -h : host(ip地址) localhost = 127.0.0.1
- -u : username(用户账户)
- -p : password(密码)
- -P : port(端口, 默认端口3306)
设置数据库密码
数据库连接成功以后,因为此时使用的是root用户的临时密码,此时无法进行任何的操作,需要先修改root用户的密码
alter user root@localhost identified with mysql_native_password by '你的密码';
或者
mysqladmin -u root password '你的密码'
备注 第一次使用 root 连接后最好添加一个新的用户来操作。出于安全考虑,日常开发中最好不要使用root
-- 创建新用户,并设置密码
-- *.* 代表该用户可以操作任何库、任何表
-- 主机名可以使用 '%', 代表允许该用户从任何机器登陆
GRANT ALL PRIVILEGES on *.* to '用户名'@'%' IDENTIFIED BY "密码" WITHGRANT OPTION;
-- 刷新使权限生效
flush privilege
退出数据库
四种方式效果一样:
- exit
- quit
- \q4.
- 快捷键: ctrl +d
安装2
使用mysql安全向导登录
cat /var/log/mysqld.log |grep password
mysql_secure_installation
登录mysql修改权限
-- *.* 代表该用户可以操作任何库、任何表
-- 主机名可以使用 '%', 代表允许该用户从任何机器登陆
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '密码' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
\q
密码忘记怎么办?
-
打开配置: vim /etc/my.cn
-
添加这么一段:
[mysqld] skip-grant-tables
如果文件中已存在 [mysqld] , 则直接将 skip-grant-tables 写到其下方即可。
- 修改完成后,保存退出,重启服务:
sudo systemctl restart mysql.service
- 使用命令
sudo mysql -uroot
重新连接MySql服务器,此时可以不使用密码直接登录用户。 - 执行
update mysql.user set authentication_string=password('你的密码') whereuser="root";
修改root用户的密码。 - 执行 flush privileges 刷新策略,使策略立刻生效,并退出mysql客户端。
- 修改
/etc/msyql/mysql.cnf
文件,注释掉第二步添加的两段内容。 - 运行
sudo systemctl restart mysql.service
重启mysql服务器。 - 此时可以使用新密码登录mysql服务器。
- 修改完成后,保存退出,重启服务:
彻底删除mysql
使用以下命令查看当前安装mysql情况,查找以前是否装有mysql
rpm -qa|grep -i mysql
停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
rpm -ev MySQL-client-xxxx
rpm -ev MySQL-server-xxxx
如果提示依赖包错误,则使用以下命令尝试
rpm -ev MySQL-client-xxxx --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts MySQL-client-xxxxxxx
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find` `/ -name mysql
查找结果如下:
find` `/ -name mysql ` `/var/lib/mysql``/var/lib/mysql/mysql``/usr/lib64/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
**注意:**卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa | grep -i mysql
无结果,说明已经卸载彻底,接下来直接安装mysql即可。