Ubuntu 下安装 mysql
运行下面的shell代码
#安装mysql
sudo apt-get -y install mysql-server
sudo apt-get -y install mysql-client
sudo apt-get -y install libmysqlclient-dev
安装过程中会提示你创建root账户
那就创建 要把root账户密码记下来 不要弄丢咯
mysql 测试
sudo mysqld --initialize
2018-10-17T06:25:56.353286Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-10-17T06:25:56.354004Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-10-17T06:25:56.354012Z 0 [ERROR] Aborting
systemctl start mysqld
弹出一个messagebox 让我输入密码我不确定是输入mysql的root密码还是Ubuntu的root密码,感觉应该是要输入mysql的root密码.但是我还是决定要先试一下Ubuntu的root密码.所以输入Ubuntu的root密码
结果输出
Failed to start mysqld.service: Unit mysqld.service not found.
启动失败,猜想是输入密码错误了.换mysql的root密码,这个root密码就是在安装mysql的时候初始创建的.
systemctl start mysqld
然后我用mysql的root密码测试居然还是不行.
那个上面的问题应该就是输入Ubuntu的密码.至于为什么不能成功应该从错误输出找原因. 启动mysqld服务失败的原因是:
Unit mysqld.service not found
先不管 先看看别的
如果看到有mysql 的socket处于 listen 状态则表示安装成功
sudo netstat -tap|grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 1071/mysqld
通过以下命令来检查MySQL服务器是否启动:
ps -ef | grep mysqld
mysql 1071 1 0 10月17 ? 00:00:38 /usr/sbin/mysqld
yourname 12237 18990 0 12:10 pts/2 00:00:00 grep --color=auto mysqld
mysql -u root -p
可以登录
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 13
Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)
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>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit;
Bye
关闭MYSQL服务
./mysqladmin -u root -p shutdown
Enter password:
测试是否关闭成功
sudo netstat -tap|grep mysql
out put nothing
ps -ef | grep mysqld
yourname 20242 18990 0 12:15 pts/2 00:00:00 grep --color=auto mysqld
看不到mysql的服务了
然后我再把MYSQL的服务启动起来
cd /usr/bin
./mysqld_safe &
2018-10-18T04:17:34.530613Z mysqld_safe Logging to syslog.
2018-10-18T04:17:34.540702Z mysqld_safe Logging to '/var/log/mysql/error.log'.
./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
2018-10-18T04:17:34.548777Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
这几乎代表着启动失败…
看一下
ps -ef|grep mysqld
liuzy 26197 18990 0 12:18 pts/2 00:00:00 grep --color=auto mysqld
看不到,服务没有启动起来,然后sudo加权限 测试
sudo nohup ./mysqld_safe &
没有出现什么错误,然后测下
ps -ef|grep mysqld
liuzy 5254 18990 0 12:26 pts/2 00:00:00 grep --color=auto mysqld
跟刚才一样… 换个命令测试
sudo netstat -tap|grep mysql
out put nothing
神马也没有输出来,尝试登录下mysql
mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
已经不能登录成功了…
当前msyql服务器运行环境
cat /etc/issue
Ubuntu 16.04.5 LTS
l
查看mysqld启动是的缺省选项
mysqld --print-defaults
mysqld would have been started with the following arguments:
--user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --basedir=/usr --datadir=/var/lib/mysql --tmpdir=/tmp --lc-messages-dir=/usr/share/mysql --skip-external-locking --bind-address=127.0.0.1 --key_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_size=8 --myisam-recover-options=BACKUP --query_cache_limit=1M --query_cache_size=16M --log_error=/var/log/mysql/error.log --expire_logs_days=10 --max_binlog_size=100M
查看mysqld启动配置文件的优先级
mysqld --verbose --help|grep -A 1 "default options"
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)
--no-defaults Don't read default options from any option file,
except for login file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
查看当前的my.cnf配置文件
sudo mysqld &
ps -ef|grep mysql
root 9758 18990 0 12:50 pts/2 00:00:00 sudo mysqld
liuzy 10745 18990 0 12:51 pts/2 00:00:00 grep --color=auto mysql
ps -ef | grep mysqld
root 9758 18990 0 12:50 pts/2 00:00:00 sudo mysqld
liuzy 12677 18990 0 12:52 pts/2 00:00:00 grep --color=auto mysqld
ps -ef|grep mysql|grep -v grep
root 9758 18990 0 12:50 pts/2 00:00:00 sudo mysqld
service mysql start
need to input root password
接着
mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)
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>
ps -ef|grep mysql|grep -v grep
yourname 20232 18990 0 13:18 pts/2 00:00:00 vim mysqld.cnf
mysql 28771 1 0 13:23 ? 00:00:00 /usr/sbin/mysqld
这就是说在Ubuntu中可以用service来启动mysql服务
那么我尝试下用service关闭 mysql服务
service mysql stop
need to input root password
ps -ef|grep mysql|grep -v grep
yourname 20232 18990 0 13:18 pts/2 00:00:00 vim mysqld.cnf