第一部分 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();
