{"id":94,"date":"2025-12-13T12:36:56","date_gmt":"2025-12-13T12:36:56","guid":{"rendered":"https:\/\/blogs.giamkichsan.com\/?p=94"},"modified":"2025-12-20T14:39:34","modified_gmt":"2025-12-20T14:39:34","slug":"cai-dat-mysql-tren-ubuntu","status":"publish","type":"post","link":"https:\/\/blogs.giamkichsan.com\/index.php\/2025\/12\/13\/cai-dat-mysql-tren-ubuntu\/","title":{"rendered":"C\u00e0i \u0111\u1eb7t MySQL tr\u00ean Ubuntu"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 C\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng<\/h2>\n\n\n\n<p>M\u1edf terminal v\u00e0 ch\u1ea1y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt upgrade -y\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 C\u00e0i MySQL Server<\/h2>\n\n\n\n<p>C\u00e0i g\u00f3i MySQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mysql-server -y\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u1ec7nh n\u00e0y s\u1ebd c\u00e0i <strong>MySQL 8.x<\/strong> (phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t trong repo Ubuntu).<\/li>\n\n\n\n<li>N\u1ebfu mu\u1ed1n ki\u1ec3m tra phi\u00ean b\u1ea3n:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql --version\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 B\u1ea3o m\u1eadt MySQL<\/h2>\n\n\n\n<p>Ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 c\u1ea5u h\u00ecnh b\u1ea3o m\u1eadt c\u01a1 b\u1ea3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql_secure_installation\n<\/code><\/pre>\n\n\n\n<p>L\u00fac n\u00e0y s\u1ebd h\u1ecfi b\u1ea1n m\u1ed9t s\u1ed1 \u0111i\u1ec1u:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>VALIDATE PASSWORD PLUGIN<\/code> \u2192 b\u1ea1n c\u00f3 th\u1ec3 ch\u1ecdn <code>0<\/code> (kh\u00f4ng b\u1eadt), <code>1<\/code> ho\u1eb7c <code>2<\/code> t\u00f9y m\u1ee9c \u0111\u1ed9 b\u1ea3o m\u1eadt.<\/li>\n\n\n\n<li>Thi\u1ebft l\u1eadp <strong>password root<\/strong> (n\u1ebfu ch\u01b0a c\u00f3).<\/li>\n\n\n\n<li>Xo\u00e1 <strong>anonymous users<\/strong>, t\u1eaft <strong>remote root login<\/strong>, xo\u00e1 <strong>test database<\/strong>, reload privilege tables \u2192 ch\u1ecdn <code>Y<\/code> cho c\u00e1c c\u00e2u h\u1ecfi n\u00e0y \u0111\u1ec3 an to\u00e0n.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 Ki\u1ec3m tra d\u1ecbch v\u1ee5 MySQL<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mysql\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu mu\u1ed1n start\/stop\/restart MySQL:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start mysql\nsudo systemctl stop mysql\nsudo systemctl restart mysql\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ec3 MySQL t\u1ef1 ch\u1ea1y khi kh\u1edfi \u0111\u1ed9ng:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable mysql\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 K\u1ebft n\u1ed1i v\u00e0o MySQL<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql\n<\/code><\/pre>\n\n\n\n<p>ho\u1eb7c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sau \u0111\u00f3 nh\u1eadp password root m\u00e0 b\u1ea1n v\u1eeba t\u1ea1o.<\/li>\n\n\n\n<li>V\u00ed d\u1ee5 \u0111\u1ec3 t\u1ea1o database test:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE testdb;\nSHOW DATABASES;<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">6. Th\u00eam m\u1edbi ho\u1eb7c \u0111\u1ed5i m\u1eadt kh\u1ea9u cho user<\/h5>\n\n\n\n<pre class=\"wp-block-code\"><code>SHOW VARIABLES LIKE 'validate_password%'; \/\/Truoc tien phai check lai role password\nSET GLOBAL validate_password.policy = LOW; \/\/ Neu muon thay doi gia tri\nCREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'password123'; -- Th\u00eam m\u1edbi\nALTER USER 'username'@'localhost' IDENTIFIED BY 'mat_khau_moi'; --Thay \u0111\u1ed5i\nFLUSH PRIVILEGES; -- L\u00e0m m\u1edbi l\u1ea1i quy\u1ec1n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 Ph\u00e2n quy\u1ec1n cho user<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">To\u00e0n quy\u1ec1n 1 database:<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT ALL PRIVILEGES ON ten_database.* TO 'dbuser'@'localhost';\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">To\u00e0n quy\u1ec1n t\u1ea5t c\u1ea3 database:<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' WITH GRANT OPTION;\n<\/code><\/pre>\n\n\n\n<p>\u00c1p d\u1ee5ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FLUSH PRIVILEGES;\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 Cho ph\u00e9p \u0111\u0103ng nh\u1eadp t\u1eeb IP b\u00ean ngo\u00e0i (n\u1ebfu c\u1ea7n)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER 'dbuser'@'%' IDENTIFIED BY 'password123';\nGRANT ALL PRIVILEGES ON ten_database.* TO 'dbuser'@'%';\nFLUSH PRIVILEGES;\n<\/code><\/pre>\n\n\n\n<p>\u26a0\ufe0f <strong>Khuy\u1ebfn ngh\u1ecb b\u1ea3o m\u1eadt<\/strong>: ch\u1ec9 m\u1edf IP c\u1ee5 th\u1ec3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER 'dbuser'@'123.123.123.123' IDENTIFIED BY 'password123';\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6\ufe0f\u20e3 Ki\u1ec3m tra user<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>SELECT user, host FROM mysql.user;\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>1\ufe0f\u20e3 C\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng M\u1edf terminal v\u00e0 ch\u1ea1y: 2\ufe0f\u20e3 C\u00e0i MySQL Server C\u00e0i g\u00f3i MySQL: 3\ufe0f\u20e3 B\u1ea3o m\u1eadt MySQL Ch\u1ea1y l\u1ec7nh sau \u0111\u1ec3 c\u1ea5u <a class=\"mh-excerpt-more\" href=\"https:\/\/blogs.giamkichsan.com\/index.php\/2025\/12\/13\/cai-dat-mysql-tren-ubuntu\/\" title=\"C\u00e0i \u0111\u1eb7t MySQL tr\u00ean Ubuntu\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-94","post","type-post","status-publish","format-standard","hentry","category-ubuntu-he-dieu-hanh"],"_links":{"self":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/94","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/comments?post=94"}],"version-history":[{"count":5,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/94\/revisions"}],"predecessor-version":[{"id":140,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/94\/revisions\/140"}],"wp:attachment":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/media?parent=94"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/categories?post=94"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/tags?post=94"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}