卸载contos7自带的 mariadb
首先CentOS7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
列出所有被安装的rpm package
rpm -qa | grep mariadb
卸载掉 mariadb
rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64
卸载可能出现一些错误无法卸载需要强制卸载
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
安装mysql步骤:
1 下载并安装MySQL官方的Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2,安装Yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3,开始安装mysql服务器
yum -y install mysql-community-server
启动mysql数据库
systemctl start mysqld.service
查看运行状态
systemctl status mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的初始化密码,通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
GRABT ALL PRIVILGESON *.* TO 'root'@'%'IDENTIFLED BY'root'WITH GRANT OPTION;
第一种方式设置密码:
进入数据库:
mysql -uroot -p (注意-u和用户名密码一定不能有空格)
输入初始化密码
此时需要设置新密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 新密码设置简单可能会报错,需要改变密码策略 set global validate_password_policy=0; set global validate_password_length=1; 因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉 yum -y remove mysql57-community-release-el7-10.noarch
第二种方式设置密码:
(1)修改配置文件,进入mysql不用密码
vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
保存退出!重启muysql服务
(2)登录并修改MySQL的root密码
mysql进入
USE mysql;
update mysql.user set authentication_string=password('你的新密码') where user='root';
flush privileges ;
quit;
将my.cnf 的刚刚的配置注释掉
解决远程连接mysql无法连接或错误问题
在安装mysql的机器上登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可
命令:
以权限用户root登录:
#mysql -uroot -p**
选择mysql库:
mysql>use mysql;
查看mysql库的user表的host值:
mysql>select 'host' from user where user='root';
修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
mysql>update user set host = '%' where user ='root';
刷新MySQL的系统权限相关表
mysql>flush privileges;
用工具连接就成功了;
配置数据库的编码
登录mysql
查看mysql的字符集:
show variables like '%character%';
设置mysql的字符集为utf-8
打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件):
vi /etc/my.cnf
在[mysqld]前面添加下面代码:
[client]
default-character-set=utf8
在[mysqld]后面添加代码:
character_set_server=utf8
重启mysql服务:
systemctl restart mysqld.service
再次查看字符集:
show variables like '%character%';
设置mysql开机启动服务:
1,创建systemctl管理mysql的配置文件
命令:touch /usr/lib/systemd/system/mysql.service
2,配置文件
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #Restart=on-failure #RestartPreventExitStatus=1 #PrivateTmp=false
|
这里最重要的一行是ExecStart它表示当systemctl去启动mysql时要执行的命令。
3,通过systemctl来设置mysql开机启动
[root@root system]# systemctl enable mysqlCreated symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service
启动 MySQL 服务:
service mysqld start
systemctl start mysqld.service
关闭 MySQL 服务:
service mysqld stop
systemctl stop mysqld.service
重启 MySQL 服务:
service mysqld restart
systemctl restart mysqld.service
查看 MySQL 的状态:
service mysqld status
systemctl status mysqld.service
登录mysql
mysql -uroot -phmj123
注意进入mysql输入命令一定要;结尾,不然命令无法执行
安装以后文件对应的目录
mysql的数据文件和二进制文件: /var/lib/mysql/
mysql的配置文件: /etc/my.cnf
mysql的日志文件: /var/log/mysql.log