本地安裝了mysql5.7, 但和springboot整合jpa時會出現 hibernateException, 不知道為什么, 換個mysql5.6版本的mysql, 源碼安裝, cmake一直過不去, 后來改成rpm安裝
1, 獲取mysql5.6
ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.6/
下載:
解壓:
其中 el6標識 centos 6, el7 標識centos 7
2, 安裝
rpm -ivh MySQL-*
如果缺少依賴, 可以掛載centos的本地yum源解決 (https://www.cnblogs.com/wenbronk/p/9357471.html)
如果提示沖突, 使用 rpm -e xxx --nodes 卸載就可以
3, 啟動, 通過netstat -nltp 查看端口監聽( 老版本是 mysqld 服務)
systemctl start mysql
4, 查看初始密碼
cat /root/.mysql_secret
5, 更改密碼
mysql -uroot -pKAKt5JmEjm6B8omVSET PASSWORD = PASSWORD(
'root'
);
6, 遠程登陸設置
mysql> user mysql; mysql> select host, user, password from user; mysql> update user set password=password('root') where user='root'; mysql> update user set host='%' where user='root' and host='localhost';
授權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '這里是你的密碼' WITH GRANT option;
必須刷新
flush privileges;
7, 設置開機啟動
[root@localhost ~]# chkconfig mysql on
[root@localhost ~]# chkconfig --list | grep mysql
8, MySQL的默認安裝位置
/var/lib/mysql/ #數據庫目錄 /usr/share/mysql #配置文件目錄 /usr/bin #相關命令目錄 /etc/init.d/mysql #啟動腳本
9, 修改默認字符集等
vim /etc/my.cnf
[client] password = root port = 3306 default-character-set=utf8 [mysqld] port = 3306 character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci #(注意linux下mysql安裝完后是默認:表名區分大小寫,列名不區分大小寫; 0:區分大小寫,1:不區分大小寫) lower_case_table_names=1 #(設置最大連接數,默認為 151,MySQL服務器允許的最大連接數16384; ) max_connections=1000 [mysql] default-character-set = utf8
10, 查看字符集
show variables like '%collation%'; show variables like '%char%';
源碼安裝:
1, 下載依賴
yum install gcc-c++
yum -y install ncurses-devel
wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz tar -zxv -f /root/cmake-2.8.4.tar.gz cd cmake-2.8.4 ./configure
make && make install
2, 創建mysql 用戶和用戶組, 創建目錄
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
mkdir -p /app/mysql-5.5.32/data
mkdir -p /app/mysql-5.5.32/tmp
3. 獲取mysql
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz
解壓, 並編譯安裝
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql-5.6.38 \ #安裝路徑
-DMYSQL_DATADIR=/app/mysql-5.6.38/data \ #數據文件路徑
-DMYSQL_UNIX_ADDR=/app/mysql-5.6.38/tmp/mysql.sock \ #sock路徑
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \ #默認的字符集
-DDEFAULT_COLLATION=utf8_general_ci \ #默認的校對規則
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \ #額外支持的字符集
-DENABLED_LOCAL_INFILE=ON \ #打開LOCAL_INFILE功能
#開啟支持多種引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITHREADLINE=1 \
-DWITHEMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make && make install
# 注意去掉所有注釋, 並無bom格式
5, 復制參數文件
cp /app/mysql-5.6.38/support-files/my-small.cnf /etc/my.cnf
6, 配置環境變量
echo 'export PATH=/app/mysql-5.6.38/bin:$PATH' >> /etc/profile
tail -1 /etc/profile
source /etc/profile
echo $PATH
7, 更改用戶組權限
chown -R mysql.mysql /app/mysql-5.5.32
8, 執行數據庫初始化腳本
./mysql_install_db --basedir=/app/mysql-5.5.32 --datadir=/app/mysql-5.5.32/data --user=mysql
9, 將mysql 加入系統啟動
cp /app/mysql-5.5.32/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
10, 啟動
/etc/init.d/mysqld start
netstat -lntup | grep 3306
11, 設置用戶, 賦予權限等
3, 創建新用戶並授權
https://www.cnblogs.com/sos-blue/p/6852945.html
https://www.cnblogs.com/xujishou/p/6306765.html
異常:
1, CMake Error: The source directory "/root/mysql-5.5.29-linux2.6-x86_64" does not appear to contain CM
下載的包不是源碼包
2, 清空cmake, 重新編譯
# make clean # rm -f CMakeCache.txt # rm -rf /etc/my.cnf
配置mysq忽略大小寫:
vi /etc/my.cnf中加入lower_case_table_names = 1
mysql 5.7 的安裝:
1), 需要安裝的包
2), 修改用戶名添加權限等
https://www.cnblogs.com/daemon-/p/9009360.html
a, 修改不需要密碼登陸, 修改/etc/my.cnf
[mysqld] datadir=/usr/local/mysql/data basedir=/usr/local/mysql socket=/tmp/mysql.sock user=mysql port=3306 character-set-server=utf8 # 取消密碼驗證 skip-grant-tables # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # skip-grant-tables [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
b, 登陸mysql
mysql -u root -p
直接回車就可登陸
c, 修改密碼
>>update user set authentication_string=password('你的密碼') where user='root'; >>flush privileges; >>exit;
d, 將/etc/my.cnf中的skip-grant-tables刪除
e, 登錄再次設置密碼(不知道為啥如果不再次設置密碼就操作不了數據庫了)
如果報錯:
https://www.cnblogs.com/ivictor/p/5142809.html
/usr/local/mysql/bin/mysql -u root -p >>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密碼'; >>exit;
f, 加入開機啟動
# 將mysql加入服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 開機自啟
chkconfig mysql on
# 開啟
service mysql start