安装包下载
cd /home/install-files
wget http://ftp.kaist.ac.kr/mysql/Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
创建配置文件
cd /etc
echo "[mysqld]
user=mysql
skip-name-resolve
#bind-address=192.168.80.168
port=3306
server_id=1
basedir=/usr/local/mysql
datadir=/home/mysql/data
#socket=/home/mysql/sock/mysql.sock
pid-file=/home/mysql/pid/mysql.pid
log-error=/home/mysql/log/mysql-error.log
symbolic-links=0
default-storage-engine=INNODB
character_set_server=utf8
collation-server=utf8_general_ci
transaction_isolation=REPEATABLE-READ
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip_ssl
default-time-zone='+8:00'
innodb_buffer_pool_instances=1
#加上以下参数可以避免更新不及时,SLAVE 重启后导致的主从复制出错。
#read_only = 1
#master_info_repository=TABLE
#relay_log_info_repository=TABLE
#relay_log_recovery=1 #从机禁止写
#super_read_only=1 #从机禁止写
[mysql]
default-character-set=utf8
port=3306
#socket=/mysql/sock/mysql.sock
" > my.cnf
执行安装命令:
ll
cd /usr/local/
mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql
mkdir -p /home/mysql/data
mkdir -p /home/mysql/sock
mkdir -p /home/mysql/log
mkdir -p /home/mysql/pid
groupadd mysql
useradd mysql -g mysql -d /usr/local/mysql -s /sbin/nologin
cd /usr/local/mysql
chown -R mysql:mysql /home/mysql
chown -R mysql:mysql /etc/my.cnf
chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
service mysqld start
修改启动服务文件
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
basedir=/usr/local/mysql datadir=/mysql/data
配置环境变量
vim /etc/profile
末尾添加
export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH
source /etc/profile
本地root用户登录mysql,初始化远程登录用户
# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> grant all privileges on *.* to idba@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
设置mysql服务开机自启动
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list | grep mysqld
安装过程遇到的问题及解决方法
(1)Error: ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
yum install libaio*
(2)Error: # ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data
2018-08-05T03:39:51.400548Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-05T03:39:51.400615Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2018-08-05T03:39:51.400620Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2018-08-05T03:39:51.402275Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-08-05T03:39:51.402308Z 0 [ERROR] Aborting
1.检查:配置文件没有问题
2.检查:所有涉及文件已归属mysql用户没问题
3.检查:数据库“bind-address”没闻到
4.清空“/mysql/data”下编译的所有,即数据库文件,重新执行:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data
(3)
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
vim /etc/environment
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
(4)忘记Mysql的root用户密码的解决方法
-- 先打开一个Terminal,在 /usr/local/mysql/bin ,下执行:
# sudo mysqld_safe --skip-grant-tables
-- 再新打开一个Terminal, 打开安全模式的mysql, 连接的时候不需要密码:
# mysql -u root -p
# UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
# FLUSH PRIVILEGES;
(5)创建数据库
# CREATE DATABASE IF NOT EXISTS my_test DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
# GRANT ALL PRIVILEGES ON *.* TO dba@'%' IDENTIFIED BY '123456';
# FLUSH PRIVILEGES;