本地安裝了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