第一部分 CentOS7安装mysql
1.1 安装前清理工作;
1.1.1 清理原有的mysql数据库;
使用以下命令查找出安装的mysql软件包和依赖包:
rpm -pa | grep mysql
显示结果如下:
1 mysql80-community-release-el7-1.noarch 2 mysql-community-server-8.0.11-1.el7.x86_64 3 mysql-community-common-8.0.11-1.el7.x86_64 4 mysql-community-libs-8.0.11-1.el7.x86_64 5 mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次删除上面的程序
yum remove mysql-xxx-xxx-
删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;
find / -name mysql
可能的显示结果如下:
1 /etc/logrotate.d/mysql 2 /etc/selinux/targeted/active/modules/100/mysql 3 /etc/selinux/targeted/tmp/modules/100/mysql 4 /var/lib/mysql 5 /var/lib/mysql/mysql 6 /usr/bin/mysql 7 /usr/lib64/mysql 8 /usr/local/mysql
根据需求使用以下命令 依次 对配置文件进行删除
rm -rf /var/lib/mysql
1.2 安装mysql
1.2.1 下面mysql官网提供的mysql repo源
centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;
mysql官网下载链接:mysql repo下载地址 如下:
1.2.2 使用putty的pscp将文件上传到CentOS
使用putty将F:盘下刚下好的mysql repo文件上传到Centos/usr/local/mysql文件夹下;
D:Putty>pscp F:mysql80-community-release-el7-1.noarch.rpm root@192.168.145.136:/usr/local/mysql/
1.2.3 安装 yum repo文件并更新 yum 缓存;
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
执行结果:
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
更新 yum 命令
1 yum clean all 2 yum makecache
1.2.4 使用 yum安装mysql
当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
第一步: 查看mysql yum仓库中mysql版本,使用如下命令
yum repolist all | grep mysql
1.2.5 安装mysql 命令如下:
yum install mysql-community-server
1.2.6 开启mysql 服务
systemctl start mysqld.service
1.2.7 获取初始密码登录mysql
mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
cat /var/log/mysqld.log | grep password
使用初始密码登录mysql
mysql -u root -p
修改初始密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'passowrd';
另外一种密码加密模式(为了适应sqlyog 或者 navicat 登录 , 因为这些软件目前还没mysql最新版的密码加密方式,登录用的还是老模式):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
设置Mysql可以远程访问
use mysql; select host,user,authentication_string,plugin from user; update user set host='%' where user='root';
如果要让数据库表不区分大小写,使用
vim /etc/my.cnf
在my.cnf文件末尾加入 lower_case_table_names=1 即可.
注意,如果数据库之前已经有数据了,即已经创建了数据库和表,那么需要把这些数据全部清空掉.否则会造成数据库无法启动.
如果查看日志一直出现 Different lower_case_table_names settings for server ('1') and data dictionary ('0')
删除 MySQL的数据 rm -rf /var/lib/mysql
然后在初始化的时候加入选项:
[root@myname ]# /usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
2. GROUP BY clause and contains nonaggregated column 'xxxxxxxxxxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这是因为SELECT @@global.sql_mode;为only_full_gro up_by,解决方法是在编辑: cat /etc/my.cnf ,加入一行:
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
然后重起:systemctl restart mysqld.serivice
1.2.8 将mysql 服务加入开机启动项,并启动mysql进程
systemctl enable mysqld.service
systemctl start mysqld.service
常用mysql服务命令:
登录mysql mysql -u username -p 退出mysql quit 启动mysql systemctl start mysqld.service 结束 systemctl stop mysqld.service 重启 systemctl restart mysqld.service 开机自启 systemctl enable mysqld.service 查看mysql版本 select version();