下载MySQL8
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
解压缩
xz -d mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
查看mysql包 ls -lh
解压tar包
tar xf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz ls -lh [root@localhost ~]# mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local/mysql [root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# ls bin include LICENSE man README.router support-files docs lib LICENSE.router README share
建立mysql账号
adduser mysql
配置mysql
vi /etc/my.cnf
my.cnf 配置内容如下:
***********************************
[client] port = 3306 socket = /usr/local/mysql/data/mysql.sock [mysqld] # Skip # skip_name_resolve = 1 skip_external_locking = 1 skip_symbolic_links = 1 # GENERAL # user = mysql default_storage_engine = InnoDB character-set-server = utf8 socket = /usr/local/mysql/data/mysql.sock pid_file = /usr/local/mysql/data/mysqld.pid basedir = /usr/local/mysql port = 3306 bind-address = 0.0.0.0 explicit_defaults_for_timestamp = off sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #read_only=on # MyISAM # key_buffer_size = 32M #myisam_recover = FORCE,BACKUP # undo log # innodb_undo_directory = /usr/local/mysql/undo innodb_undo_tablespaces = 8 # SAFETY # max_allowed_packet = 100M max_connect_errors = 1000000 sysdate_is_now = 1 #innodb = FORCE #innodb_strict_mode = 1 secure-file-priv='/tmp' default_authentication_plugin='mysql_native_password' # Replice # server-id = 1001 relay_log = mysqld-relay-bin gtid_mode = on enforce-gtid-consistency log-slave-updates = on master_info_repository =TABLE relay_log_info_repository =TABLE # DATA STORAGE # datadir = /usr/local/mysql/data/ tmpdir = /tmp # BINARY LOGGING # log_bin = /usr/local/mysql/sql_log/mysql-bin max_binlog_size = 1000M binlog_format = row binlog_expire_logs_seconds=86400 # sync_binlog = 1 # CACHES AND LIMITS # tmp_table_size = 32M max_heap_table_size = 32M max_connections = 4000 thread_cache_size = 2048 open_files_limit = 65535 table_definition_cache = 4096 table_open_cache = 4096 sort_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 2M # thread_concurrency = 24 join_buffer_size = 1M # table_cache = 32768 thread_stack = 512k max_length_for_sort_data = 16k # INNODB # innodb_flush_method = O_DIRECT innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_file_per_table = 1 innodb_buffer_pool_size = 256M #innodb_buffer_pool_instances = 8 innodb_stats_on_metadata = off innodb_open_files = 8192 innodb_read_io_threads = 16 innodb_write_io_threads = 16 innodb_io_capacity = 20000 innodb_thread_concurrency = 0 innodb_lock_wait_timeout = 60 innodb_old_blocks_time=1000 innodb_use_native_aio = 1 innodb_purge_threads=1 innodb_change_buffering=all innodb_log_file_size = 64M innodb_log_files_in_group = 2 innodb_data_file_path = ibdata1:256M:autoextend innodb_rollback_on_timeout=on # LOGGING # log_error = /usr/local/mysql/sql_log/mysql-error.log # log_queries_not_using_indexes = 1 # slow_query_log = 1 slow_query_log_file = /usr/local/mysql/sql_log/slowlog.log # TimeOut # #interactive_timeout = 30 #wait_timeout = 30 #net_read_timeout = 60 [mysqldump] quick max_allowed_packet = 100M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
创建配置文件中的目录并授权给mysql用户:
[root@localhost mysql]# mkdir data sql_log undo [root@localhost mysql]# ls -lh total 448K drwxr-xr-x. 2 root root 4.0K Jul 6 00:55 bin drwxr-xr-x. 2 root root 6 Jul 6 01:08 data drwxr-xr-x. 2 root root 86 Jul 6 00:55 docs drwxr-xr-x. 3 root root 266 Jul 6 00:55 include drwxr-xr-x. 6 root root 4.0K Jul 6 00:55 lib -rw-r--r--. 1 7161 31415 328K Jan 26 2019 LICENSE -rw-r--r--. 1 7161 31415 100K Jan 26 2019 LICENSE.router drwxr-xr-x. 4 root root 30 Jul 6 00:55 man -rw-r--r--. 1 7161 31415 687 Jan 26 2019 README -rw-r--r--. 1 7161 31415 700 Jan 26 2019 README.router drwxr-xr-x. 28 root root 4.0K Jul 6 00:55 share drwxr-xr-x. 2 root root 6 Jul 6 01:08 sql_log drwxr-xr-x. 2 root root 90 Jul 6 00:55 support-files drwxr-xr-x. 2 root root 6 Jul 6 01:08 undo [root@localhost mysql]# chown mysql:mysql -R data/ sql_log/ undo/ [root@localhost mysql]# ls -lh total 448K drwxr-xr-x. 2 root root 4.0K Jul 6 00:55 bin drwxr-xr-x. 2 mysql mysql 6 Jul 6 01:08 data drwxr-xr-x. 2 root root 86 Jul 6 00:55 docs drwxr-xr-x. 3 root root 266 Jul 6 00:55 include drwxr-xr-x. 6 root root 4.0K Jul 6 00:55 lib -rw-r--r--. 1 7161 31415 328K Jan 26 2019 LICENSE -rw-r--r--. 1 7161 31415 100K Jan 26 2019 LICENSE.router drwxr-xr-x. 4 root root 30 Jul 6 00:55 man -rw-r--r--. 1 7161 31415 687 Jan 26 2019 README -rw-r--r--. 1 7161 31415 700 Jan 26 2019 README.router drwxr-xr-x. 28 root root 4.0K Jul 6 00:55 share drwxr-xr-x. 2 mysql mysql 6 Jul 6 01:08 sql_log drwxr-xr-x. 2 root root 90 Jul 6 00:55 support-files drwxr-xr-x. 2 mysql mysql 6 Jul 6 01:08 undo [root@localhost mysql]#
为mysql添加环境变量
vi /etc/profile
文件末尾添加
export PATH=$PATH:/usr/local/mysql/bin
重新加载配置文件
# source /etc/profile
初始化mysql
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
将脚本mysql.server 拷贝到/etc/init.d/mysqld
cd support-files/ ls cp mysql.server /etc/init.d/mysqld
使用脚本启动mysql服务
/etc/init.d/mysqld start
查看mysql进程
ps -ef|grep mysql
查看mysql初始密码
mysql# cd sql_log sql_log# grep password mysql-error.log
会得到一串字符串
# 登录mysql
mysql -uroot -p
修改密码
alter user user() identified by '123456';
重新登录MySqL,完成安装并初始化操作